<!DOCTYPE html>
<html>

<head>
	<meta charset="utf-8">
	<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
	<meta name="theme-color" content="#33474d">
	<title>失落的乐章</title>
	<link rel="stylesheet" href="/css/style.css" />
	
      <link rel="alternate" href="/atom.xml" title="失落的乐章" type="application/atom+xml">
    
</head>

<body>

	<header class="header">
		<nav class="header__nav">
			
				<a href="/archives" class="header__link">Archive</a>
			
				<a href="/tags" class="header__link">Tags</a>
			
				<a href="/atom.xml" class="header__link">RSS</a>
			
		</nav>
		<h1 class="header__title"><a href="/">失落的乐章</a></h1>
		<h2 class="header__subtitle">技术面前，永远都是学生。</h2>
	</header>

	<main>
		
	<span class="different-posts different-posts_earlier">📖 <a href="/page/54">earlier posts</a> 📖</span>




	<article>
	
		<h1><a href="/2017/10/12/2. Linux 命令/21. find 命令之 xargs/">find 命令之 xargs</a></h1>
	
	<div class="article__infos">
		<span class="article__date">2017-10-12</span><br />
		
		
			<span class="article__tags">
			  	<a class="article__tag-link" href="/tags/Linux命令/">Linux命令</a>
			</span>
		
	</div>

	

	
		<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;在使用 find命令的-exec选项处理匹配到的文件时， find命令将所有匹配到的文件一起传递给exec执行。但有些系统对能够传递给exec的命令长度有限制，这样在find命令运行几分钟之后，就会出现溢出错误。错误信息通常是“参数列太长”或“参数列溢出”。这就是xargs命令的用处所在，特别是与find命令一起使用。</p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;find命令把匹配到的文件传递给xargs命令，而xargs命令每次只获取一部分文件而不是全部，不像-exec选项那样。这样它可以先处理最先获取的一部分文件，然后是下一批，并如此继续下去。</p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;在有些系统中，使用-exec选项会为处理每一个匹配到的文件而发起一个相应的进程，并非将匹配到的文件全部作为参数一次执行；这样在有些情况下就会出现进程过多，系统性能下降的问题，因而效率不高； 而使用xargs命令则只有一个进程。另外，在使用xargs命令时，究竟是一次获取所有的参数，还是分批取得参数，以及每一次获取参数的数目都会根据该命令的选项及系统内核中相应的可调参数来确定。</p>
<h2 id="使用实例"><a href="#使用实例" class="headerlink" title="使用实例"></a>使用实例</h2><h3 id="实例1：查找系统中的每一个普通文件，然后使用-xargs-命令来测试他们分别属于哪类文件"><a href="#实例1：查找系统中的每一个普通文件，然后使用-xargs-命令来测试他们分别属于哪类文件" class="headerlink" title="实例1：查找系统中的每一个普通文件，然后使用 xargs 命令来测试他们分别属于哪类文件"></a>实例1：查找系统中的每一个普通文件，然后使用 xargs 命令来测试他们分别属于哪类文件</h3><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>命令</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">find . -<span class="built_in">type</span> f -<span class="built_in">print</span> | xargs file</div></pre></td></tr></table></figure>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>输出</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div><div class="line">4</div><div class="line">5</div><div class="line">6</div><div class="line">7</div><div class="line">8</div><div class="line">9</div><div class="line">10</div><div class="line">11</div><div class="line">12</div><div class="line">13</div></pre></td><td class="code"><pre><div class="line">[root@localhost <span class="built_in">test</span>]<span class="comment"># ll</span></div><div class="line">总计 312</div><div class="line">-rw-r--r-- 1 root root 302108 11-03 06:19 log2012.log</div><div class="line">-rw-r--r-- 1 root root      0 11-12 22:25 log2013.log</div><div class="line">-rw-r--r-- 1 root root      0 11-12 22:25 log2014.log</div><div class="line">drwxr-xr-x 6 root root   4096 10-27 01:58 scf</div><div class="line">drwxrwxrwx 2 root root   4096 11-12 19:32 test3</div><div class="line">drwxrwxrwx 2 root root   4096 11-12 19:32 test4</div><div class="line">[root@localhost <span class="built_in">test</span>]<span class="comment"># find . -type f -print | xargs file</span></div><div class="line">./log2014.log: empty</div><div class="line">./log2013.log: empty</div><div class="line">./log2012.log: ASCII text</div><div class="line">[root@localhost <span class="built_in">test</span>]<span class="comment">#</span></div></pre></td></tr></table></figure>
<h3 id="实例2：在整个系统中查找内存信息转储文件（core-dump），然后把结果保存到-tmp-core-log-文件中"><a href="#实例2：在整个系统中查找内存信息转储文件（core-dump），然后把结果保存到-tmp-core-log-文件中" class="headerlink" title="实例2：在整个系统中查找内存信息转储文件（core dump），然后把结果保存到 /tmp/core.log 文件中"></a>实例2：在整个系统中查找内存信息转储文件（core dump），然后把结果保存到 /tmp/core.log 文件中</h3><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>命令</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">find / -name <span class="string">"core"</span> -<span class="built_in">print</span> | xargs <span class="built_in">echo</span> <span class="string">""</span> &gt; /tmp/core.log</div></pre></td></tr></table></figure>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>输出</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div><div class="line">4</div><div class="line">5</div><div class="line">6</div><div class="line">7</div><div class="line">8</div></pre></td><td class="code"><pre><div class="line">[root@localhost <span class="built_in">test</span>]<span class="comment"># find / -name "core" -print | xargs echo "" &gt;/tmp/core.log</span></div><div class="line">[root@localhost <span class="built_in">test</span>]<span class="comment"># cd /tmp</span></div><div class="line">[root@localhost tmp]<span class="comment"># ll</span></div><div class="line">总计 16</div><div class="line">-rw-r--r-- 1 root root 1524 11-12 22:29 core.log</div><div class="line">drwx------ 2 root root 4096 11-12 22:24 ssh-TzcZDx1766</div><div class="line">drwx------ 2 root root 4096 11-12 22:28 ssh-ykiRPk1815</div><div class="line">drwx------ 2 root root 4096 11-03 07:11 vmware-root</div></pre></td></tr></table></figure>
<h3 id="实例3：在当前目录下查找所有用户具有读、写和执行权限的文件，并收回相应的写权限"><a href="#实例3：在当前目录下查找所有用户具有读、写和执行权限的文件，并收回相应的写权限" class="headerlink" title="实例3：在当前目录下查找所有用户具有读、写和执行权限的文件，并收回相应的写权限"></a>实例3：在当前目录下查找所有用户具有读、写和执行权限的文件，并收回相应的写权限</h3><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>命令</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">find . -prem -7 -<span class="built_in">print</span> | xargs chmod 0-w</div></pre></td></tr></table></figure>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>输出</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div><div class="line">4</div><div class="line">5</div><div class="line">6</div><div class="line">7</div><div class="line">8</div><div class="line">9</div><div class="line">10</div><div class="line">11</div><div class="line">12</div><div class="line">13</div><div class="line">14</div><div class="line">15</div><div class="line">16</div><div class="line">17</div><div class="line">18</div></pre></td><td class="code"><pre><div class="line">[root@localhost <span class="built_in">test</span>]<span class="comment"># ll</span></div><div class="line">总计 312</div><div class="line">-rw-r--r-- 1 root root 302108 11-03 06:19 log2012.log</div><div class="line">-rw-r--r-- 1 root root      0 11-12 22:25 log2013.log</div><div class="line">-rw-r--r-- 1 root root      0 11-12 22:25 log2014.log</div><div class="line">drwxr-xr-x 6 root root   4096 10-27 01:58 scf</div><div class="line">drwxrwxrwx 2 root root   4096 11-12 19:32 test3</div><div class="line">drwxrwxrwx 2 root root   4096 11-12 19:32 test4</div><div class="line">[root@localhost <span class="built_in">test</span>]<span class="comment"># find . -perm -7 -print | xargs chmod o-w</span></div><div class="line">[root@localhost <span class="built_in">test</span>]<span class="comment"># ll</span></div><div class="line">总计 312</div><div class="line">-rw-r--r-- 1 root root 302108 11-03 06:19 log2012.log</div><div class="line">-rw-r--r-- 1 root root      0 11-12 22:25 log2013.log</div><div class="line">-rw-r--r-- 1 root root      0 11-12 22:25 log2014.log</div><div class="line">drwxr-xr-x 6 root root   4096 10-27 01:58 scf</div><div class="line">drwxrwxr-x 2 root root   4096 11-12 19:32 test3</div><div class="line">drwxrwxr-x 2 root root   4096 11-12 19:32 test4</div><div class="line">[root@localhost <span class="built_in">test</span>]<span class="comment">#</span></div></pre></td></tr></table></figure>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>说明</strong><br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;执行命令后，文件夹 scf 、test3 和 test4 的权限都发生改变</p>
<h3 id="实例4：用-grep-命令在所有的普通文件中搜索-hostname-这个词"><a href="#实例4：用-grep-命令在所有的普通文件中搜索-hostname-这个词" class="headerlink" title="实例4：用 grep 命令在所有的普通文件中搜索 hostname 这个词"></a>实例4：用 grep 命令在所有的普通文件中搜索 hostname 这个词</h3><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>命令</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">find . -<span class="built_in">type</span> f -<span class="built_in">print</span> | xargs grep <span class="string">"hostname"</span></div></pre></td></tr></table></figure>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>输出</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div><div class="line">4</div><div class="line">5</div></pre></td><td class="code"><pre><div class="line">[root@localhost <span class="built_in">test</span>]<span class="comment"># find . -type f -print | xargs grep "hostname"</span></div><div class="line">./log2013.log:hostnamebaidu=baidu.com</div><div class="line">./log2013.log:hostnamesina=sina.com</div><div class="line">./log2013.log:hostnames=<span class="literal">true</span></div><div class="line">[root@localhost <span class="built_in">test</span>]<span class="comment">#</span></div></pre></td></tr></table></figure>
<h3 id="实例5：用-grep-命令在当前目录下的所有普通文件中搜索-hostnames-这个词"><a href="#实例5：用-grep-命令在当前目录下的所有普通文件中搜索-hostnames-这个词" class="headerlink" title="实例5：用 grep 命令在当前目录下的所有普通文件中搜索 hostnames 这个词"></a>实例5：用 grep 命令在当前目录下的所有普通文件中搜索 hostnames 这个词</h3><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>命令</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">find . -name \* -<span class="built_in">type</span> f -<span class="built_in">print</span> | xargs grep <span class="string">"hostnames"</span></div></pre></td></tr></table></figure>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>输出</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div><div class="line">4</div></pre></td><td class="code"><pre><div class="line">[root@peida <span class="built_in">test</span>]<span class="comment"># find . -name \* -type f -print | xargs grep "hostnames"</span></div><div class="line">./log2013.log:hostnamesina=sina.com</div><div class="line">./log2013.log:hostnames=<span class="literal">true</span></div><div class="line">[root@localhost <span class="built_in">test</span>]<span class="comment">#</span></div></pre></td></tr></table></figure>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>说明</strong><br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;注意，在上例中， <code>\</code> 用来取消 find 命令中的 <code>*</code> 在 shell 中的特殊含义。</p>
<h3 id="实例6：使用-xargs-执行-mv"><a href="#实例6：使用-xargs-执行-mv" class="headerlink" title="实例6：使用 xargs 执行 mv"></a>实例6：使用 xargs 执行 mv</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">find . -name <span class="string">"*.log"</span> | xargs -i mv &#123;&#125; test4</div></pre></td></tr></table></figure>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>输出</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div><div class="line">4</div><div class="line">5</div><div class="line">6</div><div class="line">7</div><div class="line">8</div><div class="line">9</div><div class="line">10</div><div class="line">11</div><div class="line">12</div><div class="line">13</div><div class="line">14</div><div class="line">15</div><div class="line">16</div><div class="line">17</div><div class="line">18</div><div class="line">19</div><div class="line">20</div><div class="line">21</div><div class="line">22</div><div class="line">23</div></pre></td><td class="code"><pre><div class="line">[root@localhost <span class="built_in">test</span>]<span class="comment"># ll</span></div><div class="line">总计 316</div><div class="line">-rw-r--r-- 1 root root 302108 11-03 06:19 log2012.log</div><div class="line">-rw-r--r-- 1 root root     61 11-12 22:44 log2013.log</div><div class="line">-rw-r--r-- 1 root root      0 11-12 22:25 log2014.log</div><div class="line">drwxr-xr-x 6 root root   4096 10-27 01:58 scf</div><div class="line">drwxrwxr-x 2 root root   4096 11-12 22:54 test3</div><div class="line">drwxrwxr-x 2 root root   4096 11-12 19:32 test4</div><div class="line">[root@localhost <span class="built_in">test</span>]<span class="comment"># cd test4/</span></div><div class="line">[root@localhost test4]<span class="comment"># ll</span></div><div class="line">总计 0[root@localhost test4]<span class="comment"># cd ..</span></div><div class="line">[root@localhost <span class="built_in">test</span>]<span class="comment"># find . -name "*.log" | xargs -i mv &#123;&#125; test4</span></div><div class="line">[root@localhost <span class="built_in">test</span>]<span class="comment"># ll</span></div><div class="line">总计 12drwxr-xr-x 6 root root 4096 10-27 01:58 scf</div><div class="line">drwxrwxr-x 2 root root 4096 11-13 05:50 test3</div><div class="line">drwxrwxr-x 2 root root 4096 11-13 05:50 test4</div><div class="line">[root@localhost <span class="built_in">test</span>]<span class="comment"># cd test4/</span></div><div class="line">[root@localhost test4]<span class="comment"># ll</span></div><div class="line">总计 304</div><div class="line">-rw-r--r-- 1 root root 302108 11-12 22:54 log2012.log</div><div class="line">-rw-r--r-- 1 root root     61 11-12 22:54 log2013.log</div><div class="line">-rw-r--r-- 1 root root      0 11-12 22:54 log2014.log</div><div class="line">[root@localhost test4]<span class="comment">#</span></div></pre></td></tr></table></figure>
<h3 id="实例7：find-后执行-xargs-提示-xargs：argument-line-too-long-解决方法"><a href="#实例7：find-后执行-xargs-提示-xargs：argument-line-too-long-解决方法" class="headerlink" title="实例7：find 后执行 xargs 提示 xargs：argument line too long 解决方法"></a>实例7：find 后执行 xargs 提示 xargs：argument line too long 解决方法</h3><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>命令</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">find . -<span class="built_in">type</span> f -atime +0 -print0 | xargs -0 -11 -t rm -f</div></pre></td></tr></table></figure>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>输出</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div></pre></td><td class="code"><pre><div class="line">[root@pd test4]<span class="comment">#  find . -type f -atime +0 -print0 | xargs -0 -l1 -t rm -f</span></div><div class="line">rm -f </div><div class="line">[root@pdtest4]<span class="comment">#</span></div></pre></td></tr></table></figure>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>说明</strong></p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;-11 是一次处理一个； -t 是处理之前打印出命令</p>
<h3 id="实例8：使用-i-参数默认的前面输出用-代替，-I-参数可以指定其他代替字符，如例子中的"><a href="#实例8：使用-i-参数默认的前面输出用-代替，-I-参数可以指定其他代替字符，如例子中的" class="headerlink" title="实例8：使用 -i 参数默认的前面输出用 {} 代替， -I 参数可以指定其他代替字符，如例子中的 []"></a>实例8：使用 -i 参数默认的前面输出用 {} 代替， -I 参数可以指定其他代替字符，如例子中的 []</h3><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>命令</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">find . -name <span class="string">"file"</span> | xargs -I [] cp [] ..</div></pre></td></tr></table></figure>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>输出</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div><div class="line">4</div><div class="line">5</div><div class="line">6</div><div class="line">7</div><div class="line">8</div><div class="line">9</div><div class="line">10</div><div class="line">11</div><div class="line">12</div><div class="line">13</div><div class="line">14</div><div class="line">15</div><div class="line">16</div><div class="line">17</div><div class="line">18</div><div class="line">19</div><div class="line">20</div><div class="line">21</div></pre></td><td class="code"><pre><div class="line">[root@localhost <span class="built_in">test</span>]<span class="comment"># ll</span></div><div class="line">总计 12drwxr-xr-x 6 root root 4096 10-27 01:58 scf</div><div class="line">drwxrwxr-x 2 root root 4096 11-13 05:50 test3</div><div class="line">drwxrwxr-x 2 root root 4096 11-13 05:50 test4</div><div class="line">[root@localhost <span class="built_in">test</span>]<span class="comment"># cd test4</span></div><div class="line">[root@localhost test4]<span class="comment"># find . -name "file" | xargs -I [] cp [] ..</span></div><div class="line">[root@localhost test4]<span class="comment"># ll</span></div><div class="line">总计 304</div><div class="line">-rw-r--r-- 1 root root 302108 11-12 22:54 log2012.log</div><div class="line">-rw-r--r-- 1 root root     61 11-12 22:54 log2013.log</div><div class="line">-rw-r--r-- 1 root root      0 11-12 22:54 log2014.log</div><div class="line">[root@localhost test4]<span class="comment"># cd ..</span></div><div class="line">[root@localhost <span class="built_in">test</span>]<span class="comment"># ll</span></div><div class="line">总计 316</div><div class="line">-rw-r--r-- 1 root root 302108 11-13 06:03 log2012.log</div><div class="line">-rw-r--r-- 1 root root     61 11-13 06:03 log2013.log</div><div class="line">-rw-r--r-- 1 root root      0 11-13 06:03 log2014.log</div><div class="line">drwxr-xr-x 6 root root   4096 10-27 01:58 scf</div><div class="line">drwxrwxr-x 2 root root   4096 11-13 05:50 test3</div><div class="line">drwxrwxr-x 2 root root   4096 11-13 05:50 test4</div><div class="line">[root@localhost <span class="built_in">test</span>]<span class="comment">#</span></div></pre></td></tr></table></figure>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>说明</strong></p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;使用 -i 参数默认的前面输出用 {} 代替，-I 参数可以指定其他代替字符，如例子中的[]</p>
<h3 id="实例9：xargs-的-p-参数的使用"><a href="#实例9：xargs-的-p-参数的使用" class="headerlink" title="实例9：xargs 的 -p 参数的使用"></a>实例9：xargs 的 -p 参数的使用</h3><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>命令</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">find . -name <span class="string">"*.log"</span> | xargs -p -i mv &#123;&#125; ..</div></pre></td></tr></table></figure>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>输出</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div><div class="line">4</div><div class="line">5</div><div class="line">6</div><div class="line">7</div><div class="line">8</div><div class="line">9</div><div class="line">10</div><div class="line">11</div><div class="line">12</div><div class="line">13</div><div class="line">14</div><div class="line">15</div><div class="line">16</div><div class="line">17</div><div class="line">18</div><div class="line">19</div><div class="line">20</div><div class="line">21</div><div class="line">22</div><div class="line">23</div><div class="line">24</div><div class="line">25</div><div class="line">26</div><div class="line">27</div></pre></td><td class="code"><pre><div class="line">[root@localhost test3]<span class="comment"># ll</span></div><div class="line">总计 0</div><div class="line">-rw-r--r-- 1 root root 0 11-13 06:06 log2015.log</div><div class="line">[root@localhost test3]<span class="comment"># cd ..</span></div><div class="line">[root@localhost <span class="built_in">test</span>]<span class="comment"># ll</span></div><div class="line">总计 316</div><div class="line">-rw-r--r-- 1 root root 302108 11-13 06:03 log2012.log</div><div class="line">-rw-r--r-- 1 root root     61 11-13 06:03 log2013.log</div><div class="line">-rw-r--r-- 1 root root      0 11-13 06:03 log2014.log</div><div class="line">drwxr-xr-x 6 root root   4096 10-27 01:58 scf</div><div class="line">drwxrwxr-x 2 root root   4096 11-13 06:06 test3</div><div class="line">drwxrwxr-x 2 root root   4096 11-13 05:50 test4</div><div class="line">[root@localhost <span class="built_in">test</span>]<span class="comment"># cd test3</span></div><div class="line">[root@localhost test3]<span class="comment">#  find . -name "*.log" | xargs -p -i mv &#123;&#125; ..</span></div><div class="line">mv ./log2015.log .. ?...y</div><div class="line">[root@localhost test3]<span class="comment"># ll</span></div><div class="line">总计 0[root@localhost test3]<span class="comment"># cd ..</span></div><div class="line">[root@localhost <span class="built_in">test</span>]<span class="comment"># ll</span></div><div class="line">总计 316</div><div class="line">-rw-r--r-- 1 root root 302108 11-13 06:03 log2012.log</div><div class="line">-rw-r--r-- 1 root root     61 11-13 06:03 log2013.log</div><div class="line">-rw-r--r-- 1 root root      0 11-13 06:03 log2014.log</div><div class="line">-rw-r--r-- 1 root root      0 11-13 06:06 log2015.log</div><div class="line">drwxr-xr-x 6 root root   4096 10-27 01:58 scf</div><div class="line">drwxrwxr-x 2 root root   4096 11-13 06:08 test3</div><div class="line">drwxrwxr-x 2 root root   4096 11-13 05:50 test4</div><div class="line">[root@localhost <span class="built_in">test</span>]<span class="comment">#</span></div></pre></td></tr></table></figure>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>说明</strong></p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;-p 参数会提示让你确认是否执行后面的命令，y 执行，n 不执行。</p>

	

	

</article>




	<article>
	
		<h1><a href="/2017/10/12/2. Linux 命令/20. find 命令之 exec/">find 命令之 exec</a></h1>
	
	<div class="article__infos">
		<span class="article__date">2017-10-12</span><br />
		
		
			<span class="article__tags">
			  	<a class="article__tag-link" href="/tags/Linux命令/">Linux命令</a>
			</span>
		
	</div>

	

	
		<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;find是我们很常用的一个Linux命令，但是我们一般查找出来的并不仅仅是看看而已，还会有进一步的操作，这个时候exec的作用就显现出来了。</p>
<h2 id="exec解释："><a href="#exec解释：" class="headerlink" title="exec解释："></a>exec解释：</h2><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;-exec  参数后面跟的是command命令，它的终止是以;为结束标志的，所以这句命令后面的分号是不可缺少的，考虑到各个系统中分号会有不同的意义，所以前面加反斜杠。</p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;{}   花括号代表前面find查找出来的文件名。</p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;使用find时，只要把想要的操作写在一个文件里，就可以用exec来配合find查找，很方便的。在有些操作系统中只允许-exec选项执行诸如l s或ls -l这样的命令。大多数用户使用这一选项是为了查找旧文件并删除它们。建议在真正执行rm命令删除文件之前，最好先用ls命令看一下，确认它们是所要删除的文件。 exec选项后面跟随着所要执行的命令或脚本，然后是一对儿{ }，一个空格和一个\，最后是一个分号。为了使用exec选项，必须要同时使用print选项。如果验证一下find命令，会发现该命令只输出从当前路径起的相对路径及文件名。</p>
<h2 id="使用实例"><a href="#使用实例" class="headerlink" title="使用实例"></a>使用实例</h2><h3 id="实例1：ls-l-命令放在-find-命令的-exec-选项中"><a href="#实例1：ls-l-命令放在-find-命令的-exec-选项中" class="headerlink" title="实例1：ls -l 命令放在 find 命令的 -exec 选项中"></a>实例1：ls -l 命令放在 find 命令的 -exec 选项中</h3><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>命令</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">find . -<span class="built_in">type</span> d -<span class="built_in">exec</span> ls -l &#123;&#125; \;</div></pre></td></tr></table></figure>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>输出</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div><div class="line">4</div><div class="line">5</div><div class="line">6</div><div class="line">7</div><div class="line">8</div><div class="line">9</div><div class="line">10</div><div class="line">11</div><div class="line">12</div><div class="line">13</div></pre></td><td class="code"><pre><div class="line">[root@localhost <span class="built_in">test</span>]<span class="comment"># find . -type f -exec ls -l &#123;&#125; \; </span></div><div class="line">-rw-r--r-- 1 root root 127 10-28 16:51 ./log2014.log</div><div class="line">-rw-r--r-- 1 root root 0 10-28 14:47 ./test4/log3-2.log</div><div class="line">-rw-r--r-- 1 root root 0 10-28 14:47 ./test4/log3-3.log</div><div class="line">-rw-r--r-- 1 root root 0 10-28 14:47 ./test4/log3-1.log</div><div class="line">-rw-r--r-- 1 root root 33 10-28 16:54 ./log2013.log</div><div class="line">-rw-r--r-- 1 root root 302108 11-03 06:19 ./log2012.log</div><div class="line">-rw-r--r-- 1 root root 25 10-28 17:02 ./log.log</div><div class="line">-rw-r--r-- 1 root root 37 10-28 17:07 ./log.txt</div><div class="line">-rw-r--r-- 1 root root 0 10-28 14:47 ./test3/log3-2.log</div><div class="line">-rw-r--r-- 1 root root 0 10-28 14:47 ./test3/log3-3.log</div><div class="line">-rw-r--r-- 1 root root 0 10-28 14:47 ./test3/log3-1.log</div><div class="line">[root@localhost <span class="built_in">test</span>]<span class="comment">#</span></div></pre></td></tr></table></figure>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>说明</strong><br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;上例中，find 命令匹配到了当前目录下的所有普通文件，并在 -exec 选项中使用 ls -l 命令将他们列出来。</p>
<h3 id="实例2：在目录中查找更改时间在-n-日以前的文件并删除它们"><a href="#实例2：在目录中查找更改时间在-n-日以前的文件并删除它们" class="headerlink" title="实例2：在目录中查找更改时间在 n 日以前的文件并删除它们"></a>实例2：在目录中查找更改时间在 n 日以前的文件并删除它们</h3><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>命令</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">find . -<span class="built_in">type</span> f -mtime +14 -<span class="built_in">exec</span> rm &#123;&#125; \;</div></pre></td></tr></table></figure>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>输出</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div><div class="line">4</div><div class="line">5</div><div class="line">6</div><div class="line">7</div><div class="line">8</div><div class="line">9</div><div class="line">10</div><div class="line">11</div><div class="line">12</div><div class="line">13</div><div class="line">14</div><div class="line">15</div><div class="line">16</div><div class="line">17</div><div class="line">18</div><div class="line">19</div><div class="line">20</div></pre></td><td class="code"><pre><div class="line">[root@localhost <span class="built_in">test</span>]<span class="comment"># ll</span></div><div class="line">总计 328</div><div class="line">-rw-r--r-- 1 root root 302108 11-03 06:19 log2012.log</div><div class="line">-rw-r--r-- 1 root root     33 10-28 16:54 log2013.log</div><div class="line">-rw-r--r-- 1 root root    127 10-28 16:51 log2014.log</div><div class="line">lrwxrwxrwx 1 root root      7 10-28 15:18 log_link.log -&gt; log.log</div><div class="line">-rw-r--r-- 1 root root     25 10-28 17:02 log.log</div><div class="line">-rw-r--r-- 1 root root     37 10-28 17:07 log.txt</div><div class="line">drwxr-xr-x 6 root root   4096 10-27 01:58 scf</div><div class="line">drwxrwxrwx 2 root root   4096 10-28 14:47 test3</div><div class="line">drwxrwxrwx 2 root root   4096 10-28 14:47 test4</div><div class="line">[root@localhost <span class="built_in">test</span>]<span class="comment"># find . -type f -mtime +14 -exec rm &#123;&#125; \;</span></div><div class="line">[root@localhost <span class="built_in">test</span>]<span class="comment"># ll</span></div><div class="line">总计 312</div><div class="line">-rw-r--r-- 1 root root 302108 11-03 06:19 log2012.log</div><div class="line">lrwxrwxrwx 1 root root      7 10-28 15:18 log_link.log -&gt; log.log</div><div class="line">drwxr-xr-x 6 root root   4096 10-27 01:58 scf</div><div class="line">drwxrwxrwx 2 root root   4096 11-12 19:32 test3</div><div class="line">drwxrwxrwx 2 root root   4096 11-12 19:32 test4</div><div class="line">[root@localhost <span class="built_in">test</span>]<span class="comment">#</span></div></pre></td></tr></table></figure>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>说明</strong><br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;在 shell 中用任何方式删除文件之前，应当先查看相应的文件，一定要小心！当使用诸如 mv 或 rm 命令时，可以使用 -exec 选项的安全模式。它将在对每个匹配到的文件进行操作之前提示你。</p>
<h3 id="实例3：在目录中查找更改时间在-n-日以前的文件并删除它们，在删除之前先给出提示"><a href="#实例3：在目录中查找更改时间在-n-日以前的文件并删除它们，在删除之前先给出提示" class="headerlink" title="实例3：在目录中查找更改时间在 n 日以前的文件并删除它们，在删除之前先给出提示"></a>实例3：在目录中查找更改时间在 n 日以前的文件并删除它们，在删除之前先给出提示</h3><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>命令</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">find . -name <span class="string">"*.log"</span> -mtime +5 -ok rm &#123;&#125; \;</div></pre></td></tr></table></figure>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>输出</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div><div class="line">4</div><div class="line">5</div><div class="line">6</div><div class="line">7</div><div class="line">8</div><div class="line">9</div><div class="line">10</div><div class="line">11</div><div class="line">12</div><div class="line">13</div><div class="line">14</div><div class="line">15</div><div class="line">16</div><div class="line">17</div></pre></td><td class="code"><pre><div class="line">[root@localhost <span class="built_in">test</span>]<span class="comment"># ll</span></div><div class="line">总计 312</div><div class="line">-rw-r--r-- 1 root root 302108 11-03 06:19 log2012.log</div><div class="line">lrwxrwxrwx 1 root root      7 10-28 15:18 log_link.log -&gt; log.log</div><div class="line">drwxr-xr-x 6 root root   4096 10-27 01:58 scf</div><div class="line">drwxrwxrwx 2 root root   4096 11-12 19:32 test3</div><div class="line">drwxrwxrwx 2 root root   4096 11-12 19:32 test4</div><div class="line">[root@localhost <span class="built_in">test</span>]<span class="comment"># find . -name "*.log" -mtime +5 -ok rm &#123;&#125; \;</span></div><div class="line">&lt; rm ... ./log_link.log &gt; ? y</div><div class="line">&lt; rm ... ./log2012.log &gt; ? n</div><div class="line">[root@localhost <span class="built_in">test</span>]<span class="comment"># ll</span></div><div class="line">总计 312</div><div class="line">-rw-r--r-- 1 root root 302108 11-03 06:19 log2012.log</div><div class="line">drwxr-xr-x 6 root root   4096 10-27 01:58 scf</div><div class="line">drwxrwxrwx 2 root root   4096 11-12 19:32 test3</div><div class="line">drwxrwxrwx 2 root root   4096 11-12 19:32 test4</div><div class="line">[root@localhost <span class="built_in">test</span>]<span class="comment">#</span></div></pre></td></tr></table></figure>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>说明</strong></p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;在上例中，find 命令在当前目录中查找所有文件名以 .log 结尾、更改时间在5日以上的文件，并删除它们，只不过在删除之前先给出提示。按 y 键删除文件，按 n 键不删除。</p>
<h3 id="实例4：-exec-中使用-grep-命令"><a href="#实例4：-exec-中使用-grep-命令" class="headerlink" title="实例4：-exec 中使用 grep  命令"></a>实例4：-exec 中使用 grep  命令</h3><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>命令</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">find /etc -name <span class="string">"passwd*"</span> -<span class="built_in">exec</span> grep <span class="string">"root"</span> &#123;&#125; \;</div></pre></td></tr></table></figure>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>输出</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div><div class="line">4</div></pre></td><td class="code"><pre><div class="line">[root@localhost <span class="built_in">test</span>]<span class="comment"># find /etc -name "passwd*" -exec grep "root" &#123;&#125; \;</span></div><div class="line">root:x:0:0:root:/root:/bin/bash</div><div class="line">root:x:0:0:root:/root:/bin/bash</div><div class="line">[root@localhost <span class="built_in">test</span>]<span class="comment">#</span></div></pre></td></tr></table></figure>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>说明</strong></p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;任何形式的命令都可以在 -exec 选项中使用。在上例中使用 grep 命令。find 命令首先匹配所有文件名为 “passwd” 的文件，例如：passwd、passwd.old、paaswd.bak，然后执行 grep 命令看看在这些文件中是否存在一个 root 用户。</p>
<h3 id="实例5：查找文件移动到指定目录"><a href="#实例5：查找文件移动到指定目录" class="headerlink" title="实例5：查找文件移动到指定目录"></a>实例5：查找文件移动到指定目录</h3><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>命令</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">find . -name <span class="string">"*.log"</span> -<span class="built_in">exec</span> mv &#123;&#125; .. \;</div></pre></td></tr></table></figure>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>输出</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div><div class="line">4</div><div class="line">5</div><div class="line">6</div><div class="line">7</div><div class="line">8</div><div class="line">9</div><div class="line">10</div><div class="line">11</div><div class="line">12</div><div class="line">13</div><div class="line">14</div><div class="line">15</div><div class="line">16</div><div class="line">17</div><div class="line">18</div><div class="line">19</div><div class="line">20</div><div class="line">21</div><div class="line">22</div></pre></td><td class="code"><pre><div class="line">[root@localhost <span class="built_in">test</span>]<span class="comment"># ll</span></div><div class="line">总计 12drwxr-xr-x 6 root root 4096 10-27 01:58 scf</div><div class="line">drwxrwxr-x 2 root root 4096 11-12 22:49 test3</div><div class="line">drwxrwxr-x 2 root root 4096 11-12 19:32 test4</div><div class="line">[root@localhost <span class="built_in">test</span>]<span class="comment"># cd test3/</span></div><div class="line">[root@localhost test3]<span class="comment"># ll</span></div><div class="line">总计 304</div><div class="line">-rw-r--r-- 1 root root 302108 11-03 06:19 log2012.log</div><div class="line">-rw-r--r-- 1 root root     61 11-12 22:44 log2013.log</div><div class="line">-rw-r--r-- 1 root root      0 11-12 22:25 log2014.log</div><div class="line">[root@localhost test3]<span class="comment"># find . -name "*.log" -exec mv &#123;&#125; .. \;</span></div><div class="line">[root@localhost test3]<span class="comment"># ll</span></div><div class="line">总计 0[root@localhost test3]<span class="comment"># cd ..</span></div><div class="line">[root@localhost <span class="built_in">test</span>]<span class="comment"># ll</span></div><div class="line">总计 316</div><div class="line">-rw-r--r-- 1 root root 302108 11-03 06:19 log2012.log</div><div class="line">-rw-r--r-- 1 root root     61 11-12 22:44 log2013.log</div><div class="line">-rw-r--r-- 1 root root      0 11-12 22:25 log2014.log</div><div class="line">drwxr-xr-x 6 root root   4096 10-27 01:58 scf</div><div class="line">drwxrwxr-x 2 root root   4096 11-12 22:50 test3</div><div class="line">drwxrwxr-x 2 root root   4096 11-12 19:32 test4</div><div class="line">[root@localhost <span class="built_in">test</span>]<span class="comment">#</span></div></pre></td></tr></table></figure>
<h3 id="实例6：用-exec-选项执行-cp-命令"><a href="#实例6：用-exec-选项执行-cp-命令" class="headerlink" title="实例6：用 exec 选项执行 cp 命令"></a>实例6：用 exec 选项执行 cp 命令</h3><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>命令</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">find . -name <span class="string">"*.log"</span> -<span class="built_in">exec</span> cp &#123;&#125; test3 \;</div></pre></td></tr></table></figure>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>输出</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div><div class="line">4</div><div class="line">5</div><div class="line">6</div><div class="line">7</div><div class="line">8</div><div class="line">9</div><div class="line">10</div><div class="line">11</div><div class="line">12</div><div class="line">13</div><div class="line">14</div><div class="line">15</div><div class="line">16</div><div class="line">17</div><div class="line">18</div><div class="line">19</div><div class="line">20</div><div class="line">21</div></pre></td><td class="code"><pre><div class="line">[root@localhost test3]<span class="comment"># ll</span></div><div class="line">总计 0[root@localhost test3]<span class="comment"># cd ..</span></div><div class="line">[root@localhost <span class="built_in">test</span>]<span class="comment"># ll</span></div><div class="line">总计 316</div><div class="line">-rw-r--r-- 1 root root 302108 11-03 06:19 log2012.log</div><div class="line">-rw-r--r-- 1 root root     61 11-12 22:44 log2013.log</div><div class="line">-rw-r--r-- 1 root root      0 11-12 22:25 log2014.log</div><div class="line">drwxr-xr-x 6 root root   4096 10-27 01:58 scf</div><div class="line">drwxrwxr-x 2 root root   4096 11-12 22:50 test3</div><div class="line">drwxrwxr-x 2 root root   4096 11-12 19:32 test4</div><div class="line">[root@localhost <span class="built_in">test</span>]<span class="comment"># find . -name "*.log" -exec cp &#123;&#125; test3 \;</span></div><div class="line">cp: “./test3/log2014.log” 及 “test3/log2014.log” 为同一文件</div><div class="line">cp: “./test3/log2013.log” 及 “test3/log2013.log” 为同一文件</div><div class="line">cp: “./test3/log2012.log” 及 “test3/log2012.log” 为同一文件</div><div class="line">[root@localhost <span class="built_in">test</span>]<span class="comment"># cd test3</span></div><div class="line">[root@localhost test3]<span class="comment"># ll</span></div><div class="line">总计 304</div><div class="line">-rw-r--r-- 1 root root 302108 11-12 22:54 log2012.log</div><div class="line">-rw-r--r-- 1 root root     61 11-12 22:54 log2013.log</div><div class="line">-rw-r--r-- 1 root root      0 11-12 22:54 log2014.log</div><div class="line">[root@localhost test3]<span class="comment">#</span></div></pre></td></tr></table></figure>

	

	

</article>




	<article>
	
		<h1><a href="/2017/10/12/2. Linux 命令/2. Linux 命令-ls/">Linux 命令- ls</a></h1>
	
	<div class="article__infos">
		<span class="article__date">2017-10-12</span><br />
		
		
			<span class="article__tags">
			  	<a class="article__tag-link" href="/tags/Linux命令/">Linux命令</a>
			</span>
		
	</div>

	

	
		<h2 id="ls-命令"><a href="#ls-命令" class="headerlink" title="ls 命令"></a>ls 命令</h2><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;ls命令是linux下最常用的命令。ls命令就是list的缩写，缺省下ls用来打印出当前目录的清单。如果ls指定其他目录，那么就会显示指定目录里的文件及文件夹清单。 通过ls 命令不仅可以查看linux文件夹包含的文件，而且可以查看文件权限(包括目录、文件夹、文件权限)查看目录信息等等。ls 命令在日常的linux操作中用的很多!</p>
<h2 id="1-命令格式"><a href="#1-命令格式" class="headerlink" title="1.命令格式"></a>1.命令格式</h2><figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">ls   [选项]  [目录名]</div></pre></td></tr></table></figure>
<h2 id="2-命令功能"><a href="#2-命令功能" class="headerlink" title="2.命令功能"></a>2.命令功能</h2><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;列出目标目录中所有的子目录和文件</p>
<h2 id="3-常用参数："><a href="#3-常用参数：" class="headerlink" title="3.常用参数："></a>3.常用参数：</h2><ul>
<li>-a，-all 列出目录下所有的文件，包括以 . 开头的隐藏文件 </li>
<li>-A 同 -a，但不列出“.”（表示当前目录）和“..”（表示当前目录的父目录） </li>
<li>-c  配合 -lt：根据 ctime 排序及显示 ctime （文件状态最后更改的时间）配合 -l：显示 ctime 但根据名称排序否则根据 ctime 排序  </li>
<li>-C 每栏由上至下列出项目    </li>
<li>-color[=WHEN]         控制是否使用色彩分辨文件。WHEN 可以是‘never’、‘always’或‘auto’其中之一   </li>
<li>-d，-directory 将目录象文件一样显示，而不是显示其下的文件 </li>
<li>-D, –dired 产生适合 Emacs 的 dired 模式使用的结果 </li>
<li>-f 对输出的文件不进行排序，-aU 选项生效，-lst 选项失效 </li>
<li>-g 类似 -l,但不列出所有者</li>
<li>-G, –no-group 不列出任何有关组的信息</li>
<li>-h, –human-readable 以容易理解的格式列出文件大小 (例如 1K 234M 2G)</li>
<li>–si 类似 -h,但文件大小取 1000 的次方而不是 1024</li>
<li>-H, –dereference-command-line 使用命令列中的符号链接指示的真正目的地</li>
<li>–indicator-style=方式 指定在每个项目名称后加上指示符号&lt;方式&gt;：none (默认)，classify (-F)，file-type (-p)</li>
<li>-i, –inode 印出每个文件的 inode 号</li>
<li>-I, –ignore=样式 不印出任何符合 shell 万用字符&lt;样式&gt;的项目</li>
<li>-k 即 –block-size=1K,以 k 字节的形式表示文件的大小。</li>
<li>-l 除了文件名之外，还将文件的权限、所有者、文件大小等信息详细列出来。</li>
<li>-L, –dereference 当显示符号链接的文件信息时，显示符号链接所指示的对象而并非符号链接本身的信息</li>
<li>-m 所有项目以逗号分隔，并填满整行行宽</li>
<li>-o 类似 -l,显示文件的除组信息外的详细信息。</li>
<li>-r, –reverse 依相反次序排列</li>
<li>-R, –recursive 同时列出所有子目录层</li>
<li>-s, –size 以块大小为单位列出所有文件的大小</li>
<li>-S 根据文件大小排序</li>
<li>–sort=WORD 以下是可选用的 WORD 和它们代表的相应选项：<ul>
<li>extension -X status -c </li>
<li>none -U time -t</li>
<li>size -S atime -u</li>
<li>time -t access -u</li>
<li>version -v use -u</li>
</ul>
</li>
<li>-t 以文件修改时间排序</li>
<li>-u 配合 -lt:显示访问时间而且依访问时间排序</li>
<li>配合 -l:显示访问时间但根据名称排序</li>
<li>否则：根据访问时间排序</li>
<li>-U 不进行排序;依文件系统原有的次序列出项目</li>
<li>-v 根据版本进行排序</li>
<li>-w, –width=COLS 自行指定屏幕宽度而不使用目前的数值</li>
<li>-x 逐行列出项目而不是逐栏列出</li>
<li>-X 根据扩展名排序</li>
<li>-1 每行只列出一个文件</li>
<li>–help 显示此帮助信息并离开</li>
<li>–version 显示版本信息并离开</li>
</ul>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;其中，平时工作中最常用的是 -l 、-h 、-r 、-t</p>
<h2 id="4-常用范例"><a href="#4-常用范例" class="headerlink" title="4.常用范例"></a>4.常用范例</h2><h3 id="例1：列出-home-peidachang文件夹下的所有文件和目录的详细资料"><a href="#例1：列出-home-peidachang文件夹下的所有文件和目录的详细资料" class="headerlink" title="例1：列出/home/peidachang文件夹下的所有文件和目录的详细资料"></a>例1：列出/home/peidachang文件夹下的所有文件和目录的详细资料</h3><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>命令：</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">ls -l -R /home/peidachang</div></pre></td></tr></table></figure>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;这种形式和上面的命令形式执行的结果是完全一样的。另外，如果命令的操作对象位于当前目录中，可以直接对操作对象进行操作;如果不在当前目录则需要给出操作对象的完整路径，例如上面的例子中，我的当前文件夹是peidachang文件夹，我想对home文件夹下的peidachang文件进行操作，我可以直接输入 ls -lR peidachang，也可以用 ls -lR /home/peidachang。 </p>
<h3 id="例2：列出当前目录中所有以“t”开头的目录的详细内容，可以使用如下命令："><a href="#例2：列出当前目录中所有以“t”开头的目录的详细内容，可以使用如下命令：" class="headerlink" title="例2：列出当前目录中所有以“t”开头的目录的详细内容，可以使用如下命令："></a>例2：列出当前目录中所有以“t”开头的目录的详细内容，可以使用如下命令：</h3><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>命令：</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">ls -l t*</div></pre></td></tr></table></figure>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;可以查看当前目录下文件名以“t”开头的所有文件的信息。其实，在命令格式中，方括号内的内容都是可以省略的，对于命令ls而言，如果省略命令参数和操作对象，直接输入“ ls ”，则将会列出当前工作目录的内容清单。    </p>
<h3 id="例3：只列出文件下的子目录"><a href="#例3：只列出文件下的子目录" class="headerlink" title="例3：只列出文件下的子目录"></a>例3：只列出文件下的子目录</h3><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>命令：</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">ls -F /opt/soft |grep /$</div></pre></td></tr></table></figure>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;列出 /opt/soft 文件下面的子目录<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>输出：</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div><div class="line">4</div></pre></td><td class="code"><pre><div class="line">[root@localhost opt]<span class="comment"># ls -F /opt/soft |grep /$</span></div><div class="line">jdk1.6.0_16/</div><div class="line">subversion-1.6.1/</div><div class="line">tomcat6.0.32/</div></pre></td></tr></table></figure>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>命令：</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">ls -l /opt/soft | grep <span class="string">"^d"</span></div></pre></td></tr></table></figure>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;列出 /opt/soft 文件下面的子目录详细情况</p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>输出：</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div><div class="line">4</div></pre></td><td class="code"><pre><div class="line">[root@localhost opt]<span class="comment">#  ls -l /opt/soft | grep "^d"</span></div><div class="line">drwxr-xr-x 10 root root      4096 09-17 18:17 jdk1.6.0_16</div><div class="line">drwxr-xr-x 16 1016 1016      4096 10-11 03:25 subversion-1.6.1</div><div class="line">drwxr-xr-x  9 root root      4096 2011-11-01 tomcat6.0.32</div></pre></td></tr></table></figure>
<h3 id="例4：列出目前工作目录下所有名称是s-开头的档案，愈新的排愈后面，可以使用如下命令："><a href="#例4：列出目前工作目录下所有名称是s-开头的档案，愈新的排愈后面，可以使用如下命令：" class="headerlink" title="例4：列出目前工作目录下所有名称是s 开头的档案，愈新的排愈后面，可以使用如下命令："></a>例4：列出目前工作目录下所有名称是s 开头的档案，愈新的排愈后面，可以使用如下命令：</h3><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>命令：</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">ls -ltr s*</div></pre></td></tr></table></figure>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>输出：</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div><div class="line">4</div><div class="line">5</div><div class="line">6</div><div class="line">7</div><div class="line">8</div><div class="line">9</div><div class="line">10</div><div class="line">11</div><div class="line">12</div><div class="line">13</div><div class="line">14</div><div class="line">15</div></pre></td><td class="code"><pre><div class="line">[root@localhost opt]<span class="comment"># ls -ltr s*</span></div><div class="line">src:</div><div class="line">总计 0</div><div class="line">script:</div><div class="line">总计 0</div><div class="line">soft:</div><div class="line">总计 350644</div><div class="line">drwxr-xr-x  9 root root      4096 2011-11-01 tomcat6.0.32</div><div class="line">-rwxr-xr-x  1 root root  81871260 09-17 18:15 jdk-6u16-linux-x64.bin</div><div class="line">drwxr-xr-x 10 root root      4096 09-17 18:17 jdk1.6.0_16</div><div class="line">-rw-r--r--  1 root root 205831281 09-17 18:33 apache-tomcat-6.0.32.tar.gz</div><div class="line">-rw-r--r--  1 root root   5457684 09-21 00:23 tomcat6.0.32.tar.gz</div><div class="line">-rw-r--r--  1 root root   4726179 10-10 11:08 subversion-deps-1.6.1.tar.gz</div><div class="line">-rw-r--r--  1 root root   7501026 10-10 11:08 subversion-1.6.1.tar.gz</div><div class="line">drwxr-xr-x 16 1016 1016      4096 10-11 03:25 subversion-1.6.1</div></pre></td></tr></table></figure>
<h3 id="例5：列出目前工作目录下所有档案及目录-目录于名称后加”-“-可执行档于名称后加”-“"><a href="#例5：列出目前工作目录下所有档案及目录-目录于名称后加”-“-可执行档于名称后加”-“" class="headerlink" title="例5：列出目前工作目录下所有档案及目录;目录于名称后加”/“, 可执行档于名称后加”*“"></a>例5：列出目前工作目录下所有档案及目录;目录于名称后加”/“, 可执行档于名称后加”*“</h3><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>命令：</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">ls -AF</div></pre></td></tr></table></figure>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>输出：</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div></pre></td><td class="code"><pre><div class="line">[root@localhost opt]<span class="comment"># ls -AF</span></div><div class="line"><span class="built_in">log</span>/  script/  soft/  src/  svndata/  web/</div></pre></td></tr></table></figure>
<h3 id="例6：计算当前目录下的文件数和目录数"><a href="#例6：计算当前目录下的文件数和目录数" class="headerlink" title="例6：计算当前目录下的文件数和目录数"></a>例6：计算当前目录下的文件数和目录数</h3><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>命令：</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div></pre></td><td class="code"><pre><div class="line">ls -l * |grep <span class="string">"^-"</span>|wc -l ---文件个数  </div><div class="line">ls -l * |grep <span class="string">"^d"</span>|wc -l    ---目录个数</div></pre></td></tr></table></figure>
<h3 id="例7-在ls中列出文件的绝对路径"><a href="#例7-在ls中列出文件的绝对路径" class="headerlink" title="例7: 在ls中列出文件的绝对路径"></a>例7: 在ls中列出文件的绝对路径</h3><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>命令：</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">ls | sed <span class="string">"s:^:`pwd`/:"</span></div></pre></td></tr></table></figure>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>输出：</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div><div class="line">4</div><div class="line">5</div><div class="line">6</div><div class="line">7</div></pre></td><td class="code"><pre><div class="line">[root@localhost opt]<span class="comment"># ls | sed "s:^:`pwd`/:" </span></div><div class="line">/opt/<span class="built_in">log</span></div><div class="line">/opt/script</div><div class="line">/opt/soft</div><div class="line">/opt/src</div><div class="line">/opt/svndata</div><div class="line">/opt/web</div></pre></td></tr></table></figure>
<h3 id="例8：列出当前目录下的所有文件（包括隐藏文件）的绝对路径，-对目录不做递归"><a href="#例8：列出当前目录下的所有文件（包括隐藏文件）的绝对路径，-对目录不做递归" class="headerlink" title="例8：列出当前目录下的所有文件（包括隐藏文件）的绝对路径， 对目录不做递归"></a>例8：列出当前目录下的所有文件（包括隐藏文件）的绝对路径， 对目录不做递归</h3><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>命令：</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">find <span class="variable">$PWD</span> -maxdepth 1 | xargs ls -ld</div></pre></td></tr></table></figure>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>输出：</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div><div class="line">4</div><div class="line">5</div><div class="line">6</div><div class="line">7</div><div class="line">8</div></pre></td><td class="code"><pre><div class="line">[root@localhost opt]<span class="comment"># find $PWD -maxdepth 1 | xargs ls -ld</span></div><div class="line">drwxr-xr-x 8 root root 4096 10-11 03:43 /opt</div><div class="line">drwxr-xr-x 2 root root 4096 2012-03-08 /opt/<span class="built_in">log</span></div><div class="line">drwxr-xr-x 2 root root 4096 2012-03-08 /opt/script </div><div class="line">drwxr-xr-x 5 root root 4096 10-11 03:21 /opt/soft</div><div class="line">drwxr-xr-x 2 root root 4096 2012-03-08 /opt/src</div><div class="line">drwxr-xr-x 4 root root 4096 10-11 05:22 /opt/svndata</div><div class="line">drwxr-xr-x 4 root root 4096 10-09 00:45 /opt/web</div></pre></td></tr></table></figure>
<h3 id="例9：递归列出当前目录下的所有文件（包括隐藏文件）的绝对路径"><a href="#例9：递归列出当前目录下的所有文件（包括隐藏文件）的绝对路径" class="headerlink" title="例9：递归列出当前目录下的所有文件（包括隐藏文件）的绝对路径"></a>例9：递归列出当前目录下的所有文件（包括隐藏文件）的绝对路径</h3><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>命令：</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">find <span class="variable">$PWD</span> | xargs ls -ld</div></pre></td></tr></table></figure>
<h3 id="例10：指定文件时间输出格式"><a href="#例10：指定文件时间输出格式" class="headerlink" title="例10：指定文件时间输出格式"></a>例10：指定文件时间输出格式</h3><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>命令：</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">ls -tl --time-style=full-iso</div></pre></td></tr></table></figure>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>输出：</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div></pre></td><td class="code"><pre><div class="line">[root@localhost soft]<span class="comment"># ls -tl --time-style=full-iso </span></div><div class="line">总计 350644</div><div class="line">drwxr-xr-x 16 1016 1016 4096 2012-10-11 03:25:58.000000000 +0800 subversion-1.6.1</div></pre></td></tr></table></figure>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>命令:</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">ls -ctl --time-style=long-iso</div></pre></td></tr></table></figure>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>输出：</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div></pre></td><td class="code"><pre><div class="line">[root@localhost soft]<span class="comment"># ls -ctl --time-style=long-iso</span></div><div class="line">总计 350644</div><div class="line">drwxr-xr-x 16 1016 1016      4096 2012-10-11 03:25 subversion-1.6.1</div></pre></td></tr></table></figure>
<h2 id="扩展："><a href="#扩展：" class="headerlink" title="扩展："></a>扩展：</h2><h3 id="1-显示彩色目录列表"><a href="#1-显示彩色目录列表" class="headerlink" title="1. 显示彩色目录列表"></a>1. 显示彩色目录列表</h3><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;打开/etc/bashrc, 加入如下一行: </p>
<pre><code class="bash"><span class="built_in">alias</span> ls=<span class="string">"ls --color"</span>
</code></pre>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;下次启动bash时就可以像在Slackware里那样显示彩色的目录列表了, 其中颜色的含义如下:</p>
<ol>
<li>蓝色–&gt;目录      </li>
<li>绿色–&gt;可执行文件      </li>
<li>红色–&gt;压缩文件      </li>
<li>浅蓝色–&gt;链接文件      </li>
<li>灰色–&gt;其他文件</li>
</ol>

	

	

</article>




	<article>
	
		<h1><a href="/2017/10/12/2. Linux 命令/19. find 命令概览/">find 命令概览</a></h1>
	
	<div class="article__infos">
		<span class="article__date">2017-10-12</span><br />
		
		
			<span class="article__tags">
			  	<a class="article__tag-link" href="/tags/Linux命令/">Linux命令</a>
			</span>
		
	</div>

	

	
		<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Linux 下 find 命令在目录结构中搜索文件，并执行指定的操作。Linux 下 find 命令提供了相当多的查找条件，功能很强大。由于 find 具有强大的功能，所以它的选项也很多，其中大部分选项都值得我们花时间来了解一下。即使系统中含有网络文件系统( NFS)，find 命令在该文件系统中同样有效，只要具有相应的权限。 在运行一个非常消耗资源的find命令时，很多人都倾向于把它放在后台执行，因为遍历一个大的文件系统可能会花费很长的时间(这里是指30G字节以上的文件系统)。</p>
<h2 id="1-命令格式"><a href="#1-命令格式" class="headerlink" title="1.命令格式"></a>1.命令格式</h2><figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">find pathname -options [-<span class="built_in">print</span> -<span class="built_in">exec</span> -ok ...]</div></pre></td></tr></table></figure>
<h2 id="2-命令功能"><a href="#2-命令功能" class="headerlink" title="2.命令功能"></a>2.命令功能</h2><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;用于在文件树中查找文件，并作出相应的处理</p>
<h2 id="3-命令参数"><a href="#3-命令参数" class="headerlink" title="3.命令参数"></a>3.命令参数</h2><ul>
<li>pathname：find命令所查找的目录路径。例如用.来表示当前目录，用/来表示系统根目录。 </li>
<li>-print：find命令将匹配的文件输出到标准输出。</li>
<li>-exec：find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为’command’ {  } \;，注意{   }和\；之间的空格。</li>
<li>-ok：和-exec的作用相同，只不过以一种更为安全的模式来执行该参数所给出的shell命令，在执行每一个命令之前，都会给出提示，让用户来确定是否执行。</li>
</ul>
<h2 id="4-命令选项"><a href="#4-命令选项" class="headerlink" title="4.命令选项"></a>4.命令选项</h2><ul>
<li>-name   按照文件名查找文件。</li>
<li>-perm   按照文件权限来查找文件。</li>
<li>-prune  使用这一选项可以使find命令不在当前指定的目录中查找，如果同时使用-depth选项，那么-prune将被find命令忽略。</li>
<li>-user   按照文件属主来查找文件。</li>
<li>-group  按照文件所属的组来查找文件。</li>
<li>-mtime -n +n  按照文件的更改时间来查找文件， - n表示文件更改时间距现在n天以内，+ n表示文件更改时间距现在n天以前。find命令还有-atime和-ctime 选项，但它们都和-m time选项。</li>
<li>-nogroup  查找无有效所属组的文件，即该文件所属的组在/etc/groups中不存在。</li>
<li>-nouser   查找无有效属主的文件，即该文件的属主在/etc/passwd中不存在。</li>
<li>-newer file1 ! file2  查找更改时间比文件file1新但比文件file2旧的文件。</li>
<li>-type  查找某一类型的文件，诸如：</li>
<li>b - 块设备文件。</li>
<li>d - 目录。</li>
<li>c - 字符设备文件。</li>
<li>p - 管道文件。</li>
<li>l - 符号链接文件。</li>
<li>f - 普通文件。</li>
<li>-size n：[c] 查找文件长度为n块的文件，带有c时表示文件长度以字节计。-depth：在查找文件时，首先查找当前目录中的文件，然后再在其子目录中查找。</li>
<li>-fstype：查找位于某一类型文件系统中的文件，这些文件系统类型通常可以在配置文件/etc/fstab中找到，该配置文件中包含了本系统中有关文件系统的信息。</li>
<li>-mount：在查找文件时不跨越文件系统mount点。</li>
<li>-follow：如果find命令遇到符号链接文件，就跟踪至链接所指向的文件。</li>
<li>-cpio：对匹配的文件使用cpio命令，将这些文件备份到磁带设备中。</li>
</ul>
<h3 id="另外-下面三个的区别"><a href="#另外-下面三个的区别" class="headerlink" title="另外,下面三个的区别:"></a>另外,下面三个的区别:</h3><ul>
<li>-amin n   查找系统中最后N分钟访问的文件</li>
<li>-atime n  查找系统中最后n*24小时访问的文件</li>
<li>-cmin n   查找系统中最后N分钟被改变文件状态的文件</li>
<li>-ctime n  查找系统中最后n*24小时被改变文件状态的文件</li>
<li>-mmin n   查找系统中最后N分钟被改变文件数据的文件</li>
<li>-mtime n  查找系统中最后n*24小时被改变文件数据的文件</li>
</ul>
<h2 id="使用实例"><a href="#使用实例" class="headerlink" title="使用实例"></a>使用实例</h2><h3 id="实例1：查找指定时间内修改过的文件"><a href="#实例1：查找指定时间内修改过的文件" class="headerlink" title="实例1：查找指定时间内修改过的文件"></a>实例1：查找指定时间内修改过的文件</h3><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>命令</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">find -atime -2</div></pre></td></tr></table></figure>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>输出</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div><div class="line">4</div><div class="line">5</div><div class="line">6</div></pre></td><td class="code"><pre><div class="line">[root@peidachang ~]<span class="comment"># find -atime -2</span></div><div class="line">.</div><div class="line">./logs/monitor</div><div class="line">./.bashrc</div><div class="line">./.bash_profile</div><div class="line">./.bash_history</div></pre></td></tr></table></figure>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>说明</strong><br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;查找 48 小时内修改过的文件</p>
<h3 id="实例2：根据关键字查找"><a href="#实例2：根据关键字查找" class="headerlink" title="实例2：根据关键字查找"></a>实例2：根据关键字查找</h3><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>命令</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">find . -name <span class="string">"*.log"</span></div></pre></td></tr></table></figure>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>输出</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div><div class="line">4</div><div class="line">5</div><div class="line">6</div><div class="line">7</div><div class="line">8</div><div class="line">9</div><div class="line">10</div><div class="line">11</div><div class="line">12</div><div class="line">13</div><div class="line">14</div><div class="line">15</div><div class="line">16</div><div class="line">17</div><div class="line">18</div><div class="line">19</div></pre></td><td class="code"><pre><div class="line">[root@localhost <span class="built_in">test</span>]<span class="comment"># find . -name "*.log" </span></div><div class="line">./log_link.log</div><div class="line">./log2014.log</div><div class="line">./test4/log3-2.log</div><div class="line">./test4/log3-3.log</div><div class="line">./test4/log3-1.log</div><div class="line">./log2013.log</div><div class="line">./log2012.log</div><div class="line">./log.log</div><div class="line">./test5/log5-2.log</div><div class="line">./test5/log5-3.log</div><div class="line">./test5/log.log</div><div class="line">./test5/log5-1.log</div><div class="line">./test5/test3/log3-2.log</div><div class="line">./test5/test3/log3-3.log</div><div class="line">./test5/test3/log3-1.log</div><div class="line">./test3/log3-2.log</div><div class="line">./test3/log3-3.log</div><div class="line">./test3/log3-1.log</div></pre></td></tr></table></figure>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>说明</strong><br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;在当前目录查找以 .log 结尾的文件。“.” 代表当前目录</p>
<h3 id="实例3：按照目录或文件的权限来查找文件"><a href="#实例3：按照目录或文件的权限来查找文件" class="headerlink" title="实例3：按照目录或文件的权限来查找文件"></a>实例3：按照目录或文件的权限来查找文件</h3><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>命令</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">find /opt/soft/<span class="built_in">test</span>/ -perm 777</div></pre></td></tr></table></figure>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>输出</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div><div class="line">4</div><div class="line">5</div></pre></td><td class="code"><pre><div class="line">[root@localhost <span class="built_in">test</span>]<span class="comment"># find /opt/soft/test/ -perm 777</span></div><div class="line">/opt/soft/<span class="built_in">test</span>/log_link.log</div><div class="line">/opt/soft/<span class="built_in">test</span>/test4</div><div class="line">/opt/soft/<span class="built_in">test</span>/test5/test3</div><div class="line">/opt/soft/<span class="built_in">test</span>/test3</div></pre></td></tr></table></figure>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>说明</strong><br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;查找 /opt/soft/test/ 目录下，权限为 777 的文件</p>
<h3 id="实例4：按类型查找"><a href="#实例4：按类型查找" class="headerlink" title="实例4：按类型查找"></a>实例4：按类型查找</h3><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>命令</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">find . -<span class="built_in">type</span> f -name <span class="string">"*.log"</span></div></pre></td></tr></table></figure>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>输出</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div><div class="line">4</div><div class="line">5</div><div class="line">6</div><div class="line">7</div><div class="line">8</div><div class="line">9</div><div class="line">10</div><div class="line">11</div><div class="line">12</div><div class="line">13</div><div class="line">14</div><div class="line">15</div><div class="line">16</div><div class="line">17</div><div class="line">18</div><div class="line">19</div></pre></td><td class="code"><pre><div class="line">[root@localhost <span class="built_in">test</span>]<span class="comment"># find . -type f -name "*.log"</span></div><div class="line">./log2014.log</div><div class="line">./test4/log3-2.log</div><div class="line">./test4/log3-3.log</div><div class="line">./test4/log3-1.log</div><div class="line">./log2013.log</div><div class="line">./log2012.log</div><div class="line">./log.log</div><div class="line">./test5/log5-2.log</div><div class="line">./test5/log5-3.log</div><div class="line">./test5/log.log</div><div class="line">./test5/log5-1.log</div><div class="line">./test5/test3/log3-2.log</div><div class="line">./test5/test3/log3-3.log</div><div class="line">./test5/test3/log3-1.log</div><div class="line">./test3/log3-2.log</div><div class="line">./test3/log3-3.log</div><div class="line">./test3/log3-1.log</div><div class="line">[root@localhost <span class="built_in">test</span>]<span class="comment">#</span></div></pre></td></tr></table></figure>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>说明</strong><br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;查找当前目录，以 .log 结尾的普通文件</p>
<h3 id="实例5：查找当前所有目录并排序"><a href="#实例5：查找当前所有目录并排序" class="headerlink" title="实例5：查找当前所有目录并排序"></a>实例5：查找当前所有目录并排序</h3><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>命令</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">find .-<span class="built_in">type</span> d |sort</div></pre></td></tr></table></figure>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>输出</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div><div class="line">4</div><div class="line">5</div><div class="line">6</div><div class="line">7</div><div class="line">8</div><div class="line">9</div><div class="line">10</div><div class="line">11</div><div class="line">12</div><div class="line">13</div><div class="line">14</div><div class="line">15</div></pre></td><td class="code"><pre><div class="line">[root@localhost <span class="built_in">test</span>]<span class="comment"># find . -type d | sort</span></div><div class="line">.</div><div class="line">./scf</div><div class="line">./scf/bin</div><div class="line">./scf/doc</div><div class="line">./scf/lib</div><div class="line">./scf/service</div><div class="line">./scf/service/deploy</div><div class="line">./scf/service/deploy/info</div><div class="line">./scf/service/deploy/product</div><div class="line">./test3</div><div class="line">./test4</div><div class="line">./test5</div><div class="line">./test5/test3</div><div class="line">[root@localhost <span class="built_in">test</span>]<span class="comment">#</span></div></pre></td></tr></table></figure>
<h3 id="实例6：按大小查找文件"><a href="#实例6：按大小查找文件" class="headerlink" title="实例6：按大小查找文件"></a>实例6：按大小查找文件</h3><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>命令</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">find . -size +1000c -<span class="built_in">print</span></div></pre></td></tr></table></figure>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>输出</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div><div class="line">4</div><div class="line">5</div><div class="line">6</div><div class="line">7</div><div class="line">8</div><div class="line">9</div><div class="line">10</div><div class="line">11</div><div class="line">12</div><div class="line">13</div><div class="line">14</div><div class="line">15</div><div class="line">16</div></pre></td><td class="code"><pre><div class="line">[root@localhost <span class="built_in">test</span>]<span class="comment">#  find . -size +1000c -print</span></div><div class="line">.</div><div class="line">./test4</div><div class="line">./scf</div><div class="line">./scf/lib</div><div class="line">./scf/service</div><div class="line">./scf/service/deploy</div><div class="line">./scf/service/deploy/product</div><div class="line">./scf/service/deploy/info</div><div class="line">./scf/doc</div><div class="line">./scf/bin</div><div class="line">./log2012.log</div><div class="line">./test5</div><div class="line">./test5/test3</div><div class="line">./test3</div><div class="line">[root@localhost <span class="built_in">test</span>]<span class="comment">#</span></div></pre></td></tr></table></figure>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>说明</strong></p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;查找当前目录大于1K的文件</p>

	

	

</article>




	<article>
	
		<h1><a href="/2017/10/12/2. Linux 命令/18. Linux 命令- locate/">Linux 命令- locate</a></h1>
	
	<div class="article__infos">
		<span class="article__date">2017-10-12</span><br />
		
		
			<span class="article__tags">
			  	<a class="article__tag-link" href="/tags/Linux命令/">Linux命令</a>
			</span>
		
	</div>

	

	
		<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;locate 让使用者可以很快速的搜寻档案系统内是否有指定的档案。其方法是先建立一个包括系统内所有档案名称及路径的数据库，之后当寻找时就只需查询这个数据库，而不必实际深入档案系统之中了。在一般的 distribution 之中，数据库的建立都被放在 crontab 中自动执行。</p>
<h2 id="1-命令格式"><a href="#1-命令格式" class="headerlink" title="1.命令格式"></a>1.命令格式</h2><figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">locate [选择参数] [样式]</div></pre></td></tr></table></figure>
<h2 id="命令功能"><a href="#命令功能" class="headerlink" title="命令功能"></a>命令功能</h2><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;locate命令可以在搜寻数据库时快速找到档案，数据库由updatedb程序来更新，updatedb是由cron daemon周期性建立的，locate命令在搜寻数据库时比由整个由硬盘资料来搜寻资料来得快，但较差劲的是locate所找到的档案若是最近才建立或 刚更名的，可能会找不到，在内定值中，updatedb每天会跑一次，可以由修改crontab来更新设定值。(etc/crontab) </p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;locate指定用在搜寻符合条件的档案，它会去储存档案与目录名称的数据库内，寻找合乎范本样式条件的档案或目录录，可以使用特殊字元（如”*” 或”?”等）来指定范本样式，如指定范本为kcpa*ner, locate会找出所有起始字串为kcpa且结尾为ner的档案或目录，如名称为kcpartner若目录录名称为kcpa_ner则会列出该目录下包括 子目录在内的所有档案。</p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;locate指令和find找寻档案的功能类似，但locate是透过update程序将硬盘中的所有档案和目录资料先建立一个索引数据库，在 执行loacte时直接找该索引，查询速度会较快，索引数据库一般是由操作系统管理，但也可以直接下达update强迫系统立即修改索引数据库。</p>
<h2 id="命令参数"><a href="#命令参数" class="headerlink" title="命令参数"></a>命令参数</h2><ul>
<li>-e：将排除在寻找的范围之外。</li>
<li>-1：如果 是 1．则启动安全模式。在安全模式下，使用者不会看到权限无法看到    的档案。这会始速度减慢，因为 locate 必须至实际的档案系统中取得档案的    权限资料。</li>
<li>-f：将特定的档案系统排除在外，例如我们没有到理要把 proc 档案系统中的档案    放在资料库中。</li>
<li>-q：安静模式，不会显示任何错误讯息。</li>
<li>-n：至多显示 n个输出。</li>
<li>-r：使用正规运算式 做寻找的条件。</li>
<li>-o：指定资料库存的名称。</li>
<li>-d：指定资料库的路径</li>
<li>-h：显示辅助讯息</li>
<li>-V：显示程式的版本讯息</li>
</ul>
<h2 id="4-使用实例"><a href="#4-使用实例" class="headerlink" title="4.使用实例"></a>4.使用实例</h2><h3 id="实例1：查找和-pwd-相关的所有文件"><a href="#实例1：查找和-pwd-相关的所有文件" class="headerlink" title="实例1：查找和 pwd 相关的所有文件"></a>实例1：查找和 pwd 相关的所有文件</h3><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>命令</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">locate <span class="built_in">pwd</span></div></pre></td></tr></table></figure>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>输出</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div><div class="line">4</div><div class="line">5</div><div class="line">6</div><div class="line">7</div><div class="line">8</div><div class="line">9</div><div class="line">10</div><div class="line">11</div><div class="line">12</div><div class="line">13</div><div class="line">14</div><div class="line">15</div><div class="line">16</div></pre></td><td class="code"><pre><div class="line">peida-VirtualBox ~ <span class="comment"># locate pwd</span></div><div class="line">/bin/<span class="built_in">pwd</span></div><div class="line">/etc/.pwd.lock</div><div class="line">/sbin/unix_chkpwd</div><div class="line">/usr/bin/pwdx</div><div class="line">/usr/include/pwd.h</div><div class="line">/usr/lib/python2.7/dist-packages/twisted/python/fakepwd.py</div><div class="line">/usr/lib/python2.7/dist-packages/twisted/python/fakepwd.pyc</div><div class="line">/usr/lib/python2.7/dist-packages/twisted/python/<span class="built_in">test</span>/test_fakepwd.py</div><div class="line">/usr/lib/python2.7/dist-packages/twisted/python/<span class="built_in">test</span>/test_fakepwd.pyc</div><div class="line">/usr/lib/syslinux/pwd.c32</div><div class="line">/usr/share/<span class="built_in">help</span>/C/empathy/irc-join-pwd.page</div><div class="line">/usr/share/<span class="built_in">help</span>/ca/empathy/irc-join-pwd.page</div><div class="line">/usr/share/<span class="built_in">help</span>/cs/empathy/irc-join-pwd.page</div><div class="line">/usr/share/<span class="built_in">help</span>/de/empathy/irc-join-pwd.page</div><div class="line">/usr/share/<span class="built_in">help</span>/el/empathy/irc-join-pwd.page</div></pre></td></tr></table></figure>
<h3 id="实例2：搜索-etc-目录下所有以-sh-开头的文件"><a href="#实例2：搜索-etc-目录下所有以-sh-开头的文件" class="headerlink" title="实例2：搜索 etc 目录下所有以 sh 开头的文件"></a>实例2：搜索 etc 目录下所有以 sh 开头的文件</h3><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>命令</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">locate /etc/sh</div></pre></td></tr></table></figure>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>输出</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div><div class="line">4</div><div class="line">5</div></pre></td><td class="code"><pre><div class="line">[peida-VirtualBox ~] <span class="comment"># locate /etc/sh</span></div><div class="line">/etc/shadow</div><div class="line">/etc/shadow-</div><div class="line">/etc/shells</div><div class="line">[peida-VirtualBox ~] <span class="comment">#</span></div></pre></td></tr></table></figure>
<h3 id="实例3：搜索-etc-目录下，所有以-m-开头的文件"><a href="#实例3：搜索-etc-目录下，所有以-m-开头的文件" class="headerlink" title="实例3：搜索 etc 目录下，所有以 m 开头的文件"></a>实例3：搜索 etc 目录下，所有以 m 开头的文件</h3><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>命令</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">locate /etc/m</div></pre></td></tr></table></figure>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>输出</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div><div class="line">4</div><div class="line">5</div><div class="line">6</div><div class="line">7</div></pre></td><td class="code"><pre><div class="line">[peida-VirtualBox ~] <span class="comment"># locate /etc/m</span></div><div class="line">/etc/magic</div><div class="line">/etc/magic.mime</div><div class="line">/etc/mailcap</div><div class="line">/etc/mailcap.order</div><div class="line">/etc/manpath.config</div><div class="line">/etc/mate-settings-daemon</div></pre></td></tr></table></figure>

	

	

</article>




	<article>
	
		<h1><a href="/2017/10/12/2. Linux 命令/17. Linux 命令- whereis/">Linux 命令- whereis</a></h1>
	
	<div class="article__infos">
		<span class="article__date">2017-10-12</span><br />
		
		
			<span class="article__tags">
			  	<a class="article__tag-link" href="/tags/Linux命令/">Linux命令</a>
			</span>
		
	</div>

	

	
		<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;whereis命令只能用于程序名的搜索，而且只搜索二进制文件（参数-b）、man说明文件（参数-m）和源代码文件（参数-s）。如果省略参数，则返回所有信息。</p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;和find相比，whereis查找的速度非常快，这是因为linux系统会将 系统内的所有文件都记录在一个数据库文件中，当使用whereis和下面即将介绍的locate时，会从数据库中查找数据，而不是像find命令那样，通 过遍历硬盘来查找，效率自然会很高。</p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;但是该数据库文件并不是实时更新，默认情况下时一星期更新一次，因此，我们在用whereis和locate 查找文件时，有时会找到已经被删除的数据，或者刚刚建立文件，却无法查找到，原因就是因为数据库文件没有被更新。</p>
<h2 id="1-命令格式"><a href="#1-命令格式" class="headerlink" title="1.命令格式"></a>1.命令格式</h2><figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">whereis [-bmsu] [BMS 目录名 -f ] 文件名</div></pre></td></tr></table></figure>
<h2 id="2-命令功能"><a href="#2-命令功能" class="headerlink" title="2.命令功能"></a>2.命令功能</h2><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;whereis 命令是定位可执行文件、源代码文件、帮助文件在文件系统中的位置。这些文件的属性应属于原始代码，二进制文件，或是帮助文件。whereis 程序还具有搜索源代码、指定备用搜索路径和搜索不寻常项的能力。</p>
<h2 id="3-命令参数"><a href="#3-命令参数" class="headerlink" title="3.命令参数"></a>3.命令参数</h2><ul>
<li>-b   定位可执行文件。</li>
<li>-m   定位帮助文件。</li>
<li>-s   定位源代码文件。</li>
<li>-u   搜索默认路径下除可执行文件、源代码文件、帮助文件以外的其它文件。</li>
<li>-B   指定搜索可执行文件的路径。</li>
<li>-M   指定搜索帮助文件的路径。</li>
<li>-S   指定搜索源代码文件的路径。</li>
</ul>
<h2 id="4-使用实例"><a href="#4-使用实例" class="headerlink" title="4.使用实例"></a>4.使用实例</h2><h3 id="实例1：将和-文件相关的文件都查找出来"><a href="#实例1：将和-文件相关的文件都查找出来" class="headerlink" title="实例1：将和 ** 文件相关的文件都查找出来"></a>实例1：将和 ** 文件相关的文件都查找出来</h3><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>命令</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">whereis svn</div></pre></td></tr></table></figure>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>输出</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div><div class="line">4</div></pre></td><td class="code"><pre><div class="line">[root@localhost ~]<span class="comment"># whereis tomcat</span></div><div class="line">tomcat:</div><div class="line">[root@localhost ~]<span class="comment"># whereis svn</span></div><div class="line">svn: /usr/bin/svn /usr/<span class="built_in">local</span>/svn /usr/share/man/man1/svn.1.gz</div></pre></td></tr></table></figure>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>说明</strong></p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;tomcat 没安装，找不出来，svn 安装找出了很多相关文件</p>
<h3 id="实例2：只将二进制文件查找出来"><a href="#实例2：只将二进制文件查找出来" class="headerlink" title="实例2：只将二进制文件查找出来"></a>实例2：只将二进制文件查找出来</h3><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>命令</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">whereis -b svn</div></pre></td></tr></table></figure>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>输出</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div><div class="line">4</div><div class="line">5</div><div class="line">6</div><div class="line">7</div></pre></td><td class="code"><pre><div class="line">[root@localhost ~]<span class="comment"># whereis -b svn</span></div><div class="line">svn: /usr/bin/svn /usr/<span class="built_in">local</span>/svn</div><div class="line">[root@localhost ~]<span class="comment"># whereis -m svn</span></div><div class="line">svn: /usr/share/man/man1/svn.1.gz</div><div class="line">[root@localhost ~]<span class="comment"># whereis -s svn</span></div><div class="line">svn:</div><div class="line">[root@localhost ~]<span class="comment">#</span></div></pre></td></tr></table></figure>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>说明</strong></p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<code>whereis -m svn</code> 查出说明文档路径，<code>whereis -s svn</code> 找 source 源文件。</p>

	

	

</article>




	<article>
	
		<h1><a href="/2017/10/12/2. Linux 命令/16. Linux 命令- which/">Linux 命令- which</a></h1>
	
	<div class="article__infos">
		<span class="article__date">2017-10-12</span><br />
		
		
			<span class="article__tags">
			  	<a class="article__tag-link" href="/tags/Linux命令/">Linux命令</a>
			</span>
		
	</div>

	

	
		<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;我们经常在linux要查找某个文件，但不知道放在哪里了，可以使用下面的一些命令来搜索：     </p>
<ul>
<li>which  查看可执行文件的位置。</li>
<li>whereis 查看文件的位置。 </li>
<li>locate   配合数据库查看文件位置。</li>
<li>find   实际搜寻硬盘查询文件名称。</li>
</ul>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;which命令的作用是，在PATH变量指定的路径中，搜索某个系统命令的位置，并且返回第一个搜索结果。也就是说，使用which命令，就可以看到某个系统命令是否存在，以及执行的到底是哪一个位置的命令。 </p>
<h2 id="1-命令格式"><a href="#1-命令格式" class="headerlink" title="1.命令格式"></a>1.命令格式</h2><figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line"><span class="built_in">which</span> [可执行文件名称]</div></pre></td></tr></table></figure>
<h2 id="2-命令功能"><a href="#2-命令功能" class="headerlink" title="2.命令功能"></a>2.命令功能</h2><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;which 指令会在 PATH 变量指定的路径中，搜索某个系统命令的位置，并且返回第一个搜索结果。</p>
<h2 id="3-命令参数"><a href="#3-命令参数" class="headerlink" title="3.命令参数"></a>3.命令参数</h2><ul>
<li>-n:指定文件名长度，指定的长度必须大于或等于所有文件中最长的文件名。</li>
<li>-p：与 -n 参数相同，但此处的抱愧了文件的路径。</li>
<li>-w：指定输出时栏位的宽度。</li>
<li>-V：显示版本信息。</li>
</ul>
<h2 id="4-使用实例"><a href="#4-使用实例" class="headerlink" title="4.使用实例"></a>4.使用实例</h2><h3 id="实例1：查找文件、显示命令路径"><a href="#实例1：查找文件、显示命令路径" class="headerlink" title="实例1：查找文件、显示命令路径"></a>实例1：查找文件、显示命令路径</h3><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>命令</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line"><span class="built_in">which</span> lsmod</div></pre></td></tr></table></figure>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>输出</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div><div class="line">4</div><div class="line">5</div></pre></td><td class="code"><pre><div class="line">[root@localhost ~]<span class="comment"># which pwd</span></div><div class="line">/bin/<span class="built_in">pwd</span></div><div class="line">[root@localhost ~]<span class="comment">#  which adduser</span></div><div class="line">/usr/sbin/adduser</div><div class="line">[root@localhost ~]<span class="comment">#</span></div></pre></td></tr></table></figure>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>说明</strong></p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;which 是根据使用者所配置的 PATH 变量内的目录去搜索可运行档的！所以，不同的 PATH 配置内容所找到的命令当然不一样！</p>
<h3 id="实例2：用-which-去找出-which"><a href="#实例2：用-which-去找出-which" class="headerlink" title="实例2：用 which 去找出 which"></a>实例2：用 which 去找出 which</h3><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>命令</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line"><span class="built_in">which</span> <span class="built_in">which</span></div></pre></td></tr></table></figure>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>输出</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div><div class="line">4</div></pre></td><td class="code"><pre><div class="line">[root@localhost ~]<span class="comment"># which which</span></div><div class="line"><span class="built_in">alias</span> <span class="built_in">which</span>=<span class="string">'alias | /usr/bin/which --tty-only --read-alias --show-dot 	--show-tilde'</span></div><div class="line">     /usr/bin/<span class="built_in">which</span></div><div class="line">[root@localhost ~]<span class="comment">#</span></div></pre></td></tr></table></figure>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>说明</strong></p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;竟然会有两个 which ，其中一个是 alias 就是所谓的 “命令别名”，意思是输入 which 会等于后面接的那串命令！</p>
<h3 id="实例3：找出-cd-这个命令"><a href="#实例3：找出-cd-这个命令" class="headerlink" title="实例3：找出 cd 这个命令"></a>实例3：找出 cd 这个命令</h3><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>命令</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line"><span class="built_in">which</span> <span class="built_in">cd</span></div></pre></td></tr></table></figure>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>输出</strong>    </p>
<p><figure class="figure"><img src="https://github.com/hcldirgit/image/blob/master/which/01.png?raw=true" alt="image"><figcaption class="figure__caption">image</figcaption></figure>   </p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>说明</strong></p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;cd 这个常用的命令竟然找不到。为什么呢？这是因为 cd 是 bash 内建的命令！但是 which 默认是找 PATH 内所规范的目录，所以一定找不到的！</p>

	

	

</article>




	<article>
	
		<h1><a href="/2017/10/12/2. Linux 命令/15. Linux 命令- tail/">Linux 命令- tail</a></h1>
	
	<div class="article__infos">
		<span class="article__date">2017-10-12</span><br />
		
		
			<span class="article__tags">
			  	<a class="article__tag-link" href="/tags/Linux命令/">Linux命令</a>
			</span>
		
	</div>

	

	
		<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;tail 命令从指定点开始将文件写到标准输出.使用tail命令的-f选项可以方便的查阅正在改变的日志文件,tail -f filename会把filename里最尾部的内容显示在屏幕上,并且不但刷新,使你看到最新的文件内容. </p>
<h2 id="命令格式"><a href="#命令格式" class="headerlink" title="命令格式"></a>命令格式</h2><figure class="highlight plain"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">tail [必要参数] [选择参数] [文件]</div></pre></td></tr></table></figure>
<h2 id="命令参数"><a href="#命令参数" class="headerlink" title="命令参数"></a>命令参数</h2><ul>
<li>-f：循环读取</li>
<li>-q：不现实处理信息</li>
<li>-v：显示详细的处理信心</li>
<li>-c&lt;数目&gt;：显示的字节数</li>
<li>-n&lt;行数&gt;：显示行数</li>
<li>–pid=PID：与 -f 合用，表示在进程 ID ，PID 死掉之后结束</li>
<li>-q ，–quiet ，–silent：从不输出给出文件名的首部</li>
<li>-s ，–sleep-interval=S：与 -f 合用，表示在每次反复的间隔休眠 s 秒</li>
</ul>
<h2 id="使用实例"><a href="#使用实例" class="headerlink" title="使用实例"></a>使用实例</h2><h3 id="实例1：显示文件末尾内容"><a href="#实例1：显示文件末尾内容" class="headerlink" title="实例1：显示文件末尾内容"></a>实例1：显示文件末尾内容</h3><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>命令</strong></p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">tail -n 5 log2014.log</div></pre></td></tr></table></figure>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>输出</strong></p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div><div class="line">4</div><div class="line">5</div><div class="line">6</div><div class="line">7</div></pre></td><td class="code"><pre><div class="line">[root@localhost test]# tail -n 5 log2014.log </div><div class="line">2014-09</div><div class="line">2014-10</div><div class="line">2014-11</div><div class="line">2014-12</div><div class="line">==============================</div><div class="line">[root@localhost test]#</div></pre></td></tr></table></figure>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>说明</strong><br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;显示文件最后5行内容</p>
<h3 id="实例2：循环查看文件内容"><a href="#实例2：循环查看文件内容" class="headerlink" title="实例2：循环查看文件内容"></a>实例2：循环查看文件内容</h3><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>命令</strong></p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">tail -f test.log</div></pre></td></tr></table></figure>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>输出</strong></p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div><div class="line">4</div><div class="line">5</div><div class="line">6</div><div class="line">7</div><div class="line">8</div><div class="line">9</div><div class="line">10</div><div class="line">11</div><div class="line">12</div><div class="line">13</div><div class="line">14</div><div class="line">15</div></pre></td><td class="code"><pre><div class="line">[root@localhost ~]# ping 192.168.120.204 &gt; test.log &amp;</div><div class="line">[1] 11891[root@localhost ~]# tail -f test.log </div><div class="line">PING 192.168.120.204 (192.168.120.204) 56(84) bytes of data.</div><div class="line">64 bytes from 192.168.120.204: icmp_seq=1 ttl=64 time=0.038 ms</div><div class="line">64 bytes from 192.168.120.204: icmp_seq=2 ttl=64 time=0.036 ms</div><div class="line">64 bytes from 192.168.120.204: icmp_seq=3 ttl=64 time=0.033 ms</div><div class="line">64 bytes from 192.168.120.204: icmp_seq=4 ttl=64 time=0.027 ms</div><div class="line">64 bytes from 192.168.120.204: icmp_seq=5 ttl=64 time=0.032 ms</div><div class="line">64 bytes from 192.168.120.204: icmp_seq=6 ttl=64 time=0.026 ms</div><div class="line">64 bytes from 192.168.120.204: icmp_seq=7 ttl=64 time=0.030 ms</div><div class="line">64 bytes from 192.168.120.204: icmp_seq=8 ttl=64 time=0.029 ms</div><div class="line">64 bytes from 192.168.120.204: icmp_seq=9 ttl=64 time=0.044 ms</div><div class="line">64 bytes from 192.168.120.204: icmp_seq=10 ttl=64 time=0.033 ms</div><div class="line">64 bytes from 192.168.120.204: icmp_seq=11 ttl=64 time=0.027 ms</div><div class="line">[root@localhost ~]#</div></pre></td></tr></table></figure>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>说明</strong></p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">ping 192.168.120.204 &gt; test.log &amp;</div></pre></td></tr></table></figure>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;在后台 ping 远程主机。并输出文件到 test.log ；这种做法也使用与一个以上的档案监视。用 Ctrl+c 来终止。</p>
<h3 id="实例3：从第5行开始显示文件"><a href="#实例3：从第5行开始显示文件" class="headerlink" title="实例3：从第5行开始显示文件"></a>实例3：从第5行开始显示文件</h3><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>命令</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">tail -n +5 log2014.log</div></pre></td></tr></table></figure>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>输出</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div><div class="line">4</div><div class="line">5</div><div class="line">6</div><div class="line">7</div><div class="line">8</div><div class="line">9</div><div class="line">10</div><div class="line">11</div><div class="line">12</div><div class="line">13</div><div class="line">14</div><div class="line">15</div><div class="line">16</div><div class="line">17</div><div class="line">18</div><div class="line">19</div><div class="line">20</div><div class="line">21</div><div class="line">22</div><div class="line">23</div><div class="line">24</div></pre></td><td class="code"><pre><div class="line">[root@localhost <span class="built_in">test</span>]<span class="comment"># cat log2014.log </span></div><div class="line">2014-01</div><div class="line">2014-02</div><div class="line">2014-03</div><div class="line">2014-04</div><div class="line">2014-05</div><div class="line">2014-06</div><div class="line">2014-07</div><div class="line">2014-08</div><div class="line">2014-09</div><div class="line">2014-10</div><div class="line">2014-11</div><div class="line">2014-12</div><div class="line">==============================</div><div class="line">[root@localhost <span class="built_in">test</span>]<span class="comment"># tail -n +5 log2014.log</span></div><div class="line">2014-05</div><div class="line">2014-06</div><div class="line">2014-07</div><div class="line">2014-08</div><div class="line">2014-09</div><div class="line">2014-10</div><div class="line">2014-11</div><div class="line">2014-12</div><div class="line">==============================</div></pre></td></tr></table></figure>

	

	

</article>




	<article>
	
		<h1><a href="/2017/10/12/2. Linux 命令/14. Linux 命令- head/">Linux 命令- head</a></h1>
	
	<div class="article__infos">
		<span class="article__date">2017-10-12</span><br />
		
		
			<span class="article__tags">
			  	<a class="article__tag-link" href="/tags/Linux命令/">Linux命令</a>
			</span>
		
	</div>

	

	
		<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;head 与 tail 就像它的名字一样的浅显易懂，它是用来显示开头或结尾某个数量的文字区块， head 用来显示档案的开头至标准输出中，而 tail 想当然就是看档案的结尾。</p>
<h2 id="命令格式"><a href="#命令格式" class="headerlink" title="命令格式"></a>命令格式</h2><figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">head [参数] [文件]</div></pre></td></tr></table></figure>
<h2 id="命令功能"><a href="#命令功能" class="headerlink" title="命令功能"></a>命令功能</h2><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;head 用来显示档案的开头至标准输出中，默认 head 命令打印其相应文件的开头10行。</p>
<h2 id="命令参数"><a href="#命令参数" class="headerlink" title="命令参数"></a>命令参数</h2><ul>
<li>-q 隐藏文件名     </li>
<li>-v 显示文件名</li>
<li>-c&lt;字节&gt; 显示字节数</li>
<li>-n&lt;行数&gt; 显示的行数</li>
</ul>
<h2 id="使用实例"><a href="#使用实例" class="headerlink" title="使用实例"></a>使用实例</h2><h3 id="实例1：显示文件的前-n-行"><a href="#实例1：显示文件的前-n-行" class="headerlink" title="实例1：显示文件的前 n 行"></a>实例1：显示文件的前 n 行</h3><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>命令</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">head -n 5 log2014.log</div></pre></td></tr></table></figure>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>输出</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div><div class="line">4</div><div class="line">5</div><div class="line">6</div><div class="line">7</div><div class="line">8</div><div class="line">9</div><div class="line">10</div><div class="line">11</div><div class="line">12</div><div class="line">13</div><div class="line">14</div><div class="line">15</div><div class="line">16</div><div class="line">17</div><div class="line">18</div><div class="line">19</div><div class="line">20</div></pre></td><td class="code"><pre><div class="line">[root@localhost <span class="built_in">test</span>]<span class="comment"># cat log2014.log </span></div><div class="line">2014-01</div><div class="line">2014-02</div><div class="line">2014-03</div><div class="line">2014-04</div><div class="line">2014-05</div><div class="line">2014-06</div><div class="line">2014-07</div><div class="line">2014-08</div><div class="line">2014-09</div><div class="line">2014-10</div><div class="line">2014-11</div><div class="line">2014-12</div><div class="line">==============================</div><div class="line">[root@localhost <span class="built_in">test</span>]<span class="comment"># head -n 5 log2014.log </span></div><div class="line">2014-01</div><div class="line">2014-02</div><div class="line">2014-03</div><div class="line">2014-04</div><div class="line">2014-05[root@localhost <span class="built_in">test</span>]<span class="comment">#</span></div></pre></td></tr></table></figure>
<h2 id="实例2：显示文件前-n-个字节"><a href="#实例2：显示文件前-n-个字节" class="headerlink" title="实例2：显示文件前 n 个字节"></a>实例2：显示文件前 n 个字节</h2><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>命令</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">head -c 20 log2014.log</div></pre></td></tr></table></figure>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>输出</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div><div class="line">4</div><div class="line">5</div></pre></td><td class="code"><pre><div class="line">[root@localhost <span class="built_in">test</span>]<span class="comment"># head -c 20 log2014.log</span></div><div class="line">2014-01</div><div class="line">2014-02</div><div class="line">2014</div><div class="line">[root@localhost <span class="built_in">test</span>]<span class="comment">#</span></div></pre></td></tr></table></figure>
<h3 id="实例3：文件的除了最后-n-个字节意外的内容"><a href="#实例3：文件的除了最后-n-个字节意外的内容" class="headerlink" title="实例3：文件的除了最后 n 个字节意外的内容"></a>实例3：文件的除了最后 n 个字节意外的内容</h3><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>命令</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">head -c -32 log2014.log</div></pre></td></tr></table></figure>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>输出</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div><div class="line">4</div><div class="line">5</div><div class="line">6</div><div class="line">7</div><div class="line">8</div><div class="line">9</div><div class="line">10</div><div class="line">11</div><div class="line">12</div><div class="line">13</div><div class="line">14</div></pre></td><td class="code"><pre><div class="line">[root@localhost <span class="built_in">test</span>]<span class="comment"># head -c -32 log2014.log</span></div><div class="line">2014-01</div><div class="line">2014-02</div><div class="line">2014-03</div><div class="line">2014-04</div><div class="line">2014-05</div><div class="line">2014-06</div><div class="line">2014-07</div><div class="line">2014-08</div><div class="line">2014-09</div><div class="line">2014-10</div><div class="line">2014-11</div><div class="line">2014-12</div><div class="line">[root@localhost <span class="built_in">test</span>]<span class="comment">#</span></div></pre></td></tr></table></figure>
<h3 id="实例4：输出文件除了最后-n-行的全部内容"><a href="#实例4：输出文件除了最后-n-行的全部内容" class="headerlink" title="实例4：输出文件除了最后 n 行的全部内容"></a>实例4：输出文件除了最后 n 行的全部内容</h3><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>命令</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">head -n -6 log2014.log</div></pre></td></tr></table></figure>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>输出</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div><div class="line">4</div><div class="line">5</div><div class="line">6</div><div class="line">7</div><div class="line">8</div><div class="line">9</div></pre></td><td class="code"><pre><div class="line">[root@localhost <span class="built_in">test</span>]<span class="comment"># head -n -6 log2014.log</span></div><div class="line">2014-01</div><div class="line">2014-02</div><div class="line">2014-03</div><div class="line">2014-04</div><div class="line">2014-05</div><div class="line">2014-06</div><div class="line">2014-07</div><div class="line">[root@localhost <span class="built_in">test</span>]<span class="comment">#</span></div></pre></td></tr></table></figure>

	

	

</article>




	<article>
	
		<h1><a href="/2017/10/12/2. Linux 命令/12. Linux 命令- more/">Linux 命令- more</a></h1>
	
	<div class="article__infos">
		<span class="article__date">2017-10-12</span><br />
		
		
			<span class="article__tags">
			  	<a class="article__tag-link" href="/tags/Linux命令/">Linux命令</a>
			</span>
		
	</div>

	

	
		<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;more命令，功能类似 cat ，cat命令是整个文件的内容从上到下显示在屏幕上。 more会以一页一页的显示方便使用者逐页阅读，而最基本的指令就是按空白键（space）就往下一页显示，按 b 键就会往回（back）一页显示，而且还有搜寻字串的功能 。more命令从前向后读取文件，因此在启动时就加载整个文件。</p>
<h2 id="1．命令格式"><a href="#1．命令格式" class="headerlink" title="1．命令格式"></a>1．命令格式</h2><figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">more [-dlfpcsu ] [-num ] [+/ pattern] [+ linenum] [file ... ]</div></pre></td></tr></table></figure>
<h2 id="2．命令功能"><a href="#2．命令功能" class="headerlink" title="2．命令功能"></a>2．命令功能</h2><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;more命令和cat的功能一样都是查看文件里的内容，但有所不同的是more可以按页来查看文件的内容，还支持直接跳转行等功能。</p>
<h2 id="3．命令参数"><a href="#3．命令参数" class="headerlink" title="3．命令参数"></a>3．命令参数</h2><ul>
<li>+n 从笫n行开始显示</li>
<li>定义屏幕大小为n行</li>
<li>+/pattern 在每个档案显示前搜寻该字串（pattern），然后从该字串前两行之后开始显示  </li>
<li>-c 从顶部清屏，然后显示</li>
<li>-d 提示“Press space to continue，’q’ to quit（按空格键继续，按q键退出）”，禁用响铃功能</li>
<li>-l 忽略Ctrl+l（换页）字符</li>
<li>-p 通过清除窗口而不是滚屏来对文件进行换页，与-c选项相似</li>
<li>-s 把连续的多个空行显示为一行</li>
<li>-u 把文件内容中的下画线去掉</li>
</ul>
<h2 id="4．常用操作命令："><a href="#4．常用操作命令：" class="headerlink" title="4．常用操作命令："></a>4．常用操作命令：</h2><ul>
<li>Enter 向下n行，需要定义。默认为1行</li>
<li>Ctrl+F 向下滚动一屏</li>
<li>空格键 向下滚动一屏</li>
<li>Ctrl+B 返回上一屏</li>
<li>=  输出当前行的行号</li>
<li>：f 输出文件名和当前行的行号</li>
<li>V  调用vi编辑器</li>
<li>!命令 调用Shell，并执行命令 </li>
<li>q  退出more</li>
</ul>
<h2 id="5．命令实例："><a href="#5．命令实例：" class="headerlink" title="5．命令实例："></a>5．命令实例：</h2><h3 id="实例1：显示文件中从第3行起的内容"><a href="#实例1：显示文件中从第3行起的内容" class="headerlink" title="实例1：显示文件中从第3行起的内容"></a>实例1：显示文件中从第3行起的内容</h3><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>命令：</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">more +3 log2012.log</div></pre></td></tr></table></figure>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>输出：</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div><div class="line">4</div><div class="line">5</div><div class="line">6</div><div class="line">7</div><div class="line">8</div><div class="line">9</div><div class="line">10</div><div class="line">11</div><div class="line">12</div><div class="line">13</div><div class="line">14</div><div class="line">15</div></pre></td><td class="code"><pre><div class="line">[root@localhost <span class="built_in">test</span>]<span class="comment"># cat log2012.log </span></div><div class="line">2012-01</div><div class="line">2012-02</div><div class="line">2012-03</div><div class="line">2012-04-day1</div><div class="line">2012-04-day2</div><div class="line">2012-04-day3</div><div class="line">======</div><div class="line">[root@localhost <span class="built_in">test</span>]<span class="comment"># more +3 log2012.log </span></div><div class="line">2012-03</div><div class="line">2012-04-day1</div><div class="line">2012-04-day2</div><div class="line">2012-04-day3</div><div class="line">======</div><div class="line">[root@localhost <span class="built_in">test</span>]<span class="comment">#</span></div></pre></td></tr></table></figure>
<h3 id="实例2：从文件中查找第一个出现”day3”字符串的行，并从该处前两行开始显示输出"><a href="#实例2：从文件中查找第一个出现”day3”字符串的行，并从该处前两行开始显示输出" class="headerlink" title="实例2：从文件中查找第一个出现”day3”字符串的行，并从该处前两行开始显示输出"></a>实例2：从文件中查找第一个出现”day3”字符串的行，并从该处前两行开始显示输出</h3><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>命令：</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">more +/day3 log2012.log</div></pre></td></tr></table></figure>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>输出：</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div><div class="line">4</div><div class="line">5</div><div class="line">6</div><div class="line">7</div><div class="line">8</div></pre></td><td class="code"><pre><div class="line">[root@localhost <span class="built_in">test</span>]<span class="comment"># more +/day3 log2012.log </span></div><div class="line">...skipping</div><div class="line">2012-04-day1</div><div class="line">2012-04-day2</div><div class="line">2012-04-day3</div><div class="line">2012-05</div><div class="line">2012-05-day1</div><div class="line">======[root@localhost <span class="built_in">test</span>]<span class="comment">#</span></div></pre></td></tr></table></figure>
<h3 id="实例3：设定每屏显示行数"><a href="#实例3：设定每屏显示行数" class="headerlink" title="实例3：设定每屏显示行数"></a>实例3：设定每屏显示行数</h3><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>命令：</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">more -5 log2012.log</div></pre></td></tr></table></figure>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>输出：</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div><div class="line">4</div><div class="line">5</div><div class="line">6</div></pre></td><td class="code"><pre><div class="line">[root@localhost <span class="built_in">test</span>]<span class="comment"># more -5 log2012.log </span></div><div class="line">2012-01</div><div class="line">2012-02</div><div class="line">2012-03</div><div class="line">2012-04-day1</div><div class="line">2012-04-day2</div></pre></td></tr></table></figure>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>说明：</strong></p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;最下面显示了该屏展示的内容占文件总行数的比例，按 Ctrl+F 或者 空格键 将会显示下一屏5条内容，百分比也会跟着变化。      </p>
<h3 id="实例4：列一个目录下的文件，由于内容太多，我们应该学会用more来分页显示。这得和管道-结合起来"><a href="#实例4：列一个目录下的文件，由于内容太多，我们应该学会用more来分页显示。这得和管道-结合起来" class="headerlink" title="实例4：列一个目录下的文件，由于内容太多，我们应该学会用more来分页显示。这得和管道 | 结合起来"></a>实例4：列一个目录下的文件，由于内容太多，我们应该学会用more来分页显示。这得和管道 | 结合起来</h3><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>命令：</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">ls -l  | more -5</div></pre></td></tr></table></figure>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>输出：</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div><div class="line">4</div><div class="line">5</div><div class="line">6</div><div class="line">7</div><div class="line">8</div><div class="line">9</div><div class="line">10</div><div class="line">11</div></pre></td><td class="code"><pre><div class="line">[root@localhost <span class="built_in">test</span>]<span class="comment">#  ls -l  | more -5</span></div><div class="line">总计 36</div><div class="line">-rw-r--r-- 1 root root  308 11-01 16:49 log2012.log</div><div class="line">-rw-r--r-- 1 root root   33 10-28 16:54 log2013.log</div><div class="line">-rw-r--r-- 1 root root  127 10-28 16:51 log2014.log</div><div class="line">lrwxrwxrwx 1 root root    7 10-28 15:18 log_link.log -&gt; log.log</div><div class="line">-rw-r--r-- 1 root root   25 10-28 17:02 log.log</div><div class="line">-rw-r--r-- 1 root root   37 10-28 17:07 log.txt</div><div class="line">drwxr-xr-x 6 root root 4096 10-27 01:58 scf</div><div class="line">drwxrwxrwx 2 root root 4096 10-28 14:47 test3</div><div class="line">drwxrwxrwx 2 root root 4096 10-28 14:47 test4</div></pre></td></tr></table></figure>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>说明：</strong></p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;每页显示5个文件信息，按 Ctrl+F 或者 空格键 将会显示下5条文件信息。</p>

	

	

</article>





	<span class="different-posts">📖 <a href="/page/56">more posts</a> 📖</span>



	</main>

	<footer class="footer">
	<div class="footer-content">
		
	      <div class="footer__element">
	<p>Hi there, <br />welcome to my Blog glad you found it. Have a look around, will you?</p>
</div>

	    
	      <div class="footer__element">
	<h5>Check out</h5>
	<ul class="footer-links">
		<li class="footer-links__link"><a href="/archives">Archive</a></li>
		
		  <li class="footer-links__link"><a href="/atom.xml">RSS</a></li>
	    
		<li class="footer-links__link"><a href="/about">about page</a></li>
		<li class="footer-links__link"><a href="/tags">Tags</a></li>
		<li class="footer-links__link"><a href="/categories">Categories</a></li>
	</ul>
</div>

	    

		<div class="footer-credit">
			<span>© 2017 失落的乐章 | Powered by <a href="https://hexo.io/">Hexo</a> | Theme <a href="https://github.com/HoverBaum/meilidu-hexo">MeiliDu</a></span>
		</div>

	</div>


</footer>



</body>

</html>
